當前位置:首頁 » 編程語言 » 頭歌c語言習題答案
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

頭歌c語言習題答案

發布時間: 2022-07-29 11:46:38

① 求c語言練習題答案。。。

錯,錯,2,1,2,3,2,2,2,2
(答案僅供參考,畢竟不是真試卷,可能有筆誤)

② c語言習題,求答案!

17 C 19 B 20 D 21 C(21這題貌似有問題) 22 B 23 A 24 D 25 A 26 C 27 B 28 C 29 D 30 D
不能保證全對,但是希望可以幫上你

③ 求C語言練習題答案

二、填空題
1. ___變數__是指在程序運行過程中,值可以發生變化的量。
2.C語言是一種____區分_(區分/不區分)字母大小寫的語言,Password和password在C語言中是兩個___不同__(相同/不同)的標識符。
3.下面的轉義字元分別表示:
』\b』__退格___,』\n』__換行___,』\t』__水平製表___,』\地』 __雙引號字元逗"地___
4.下面常量的類型分別為:
1.5E12__浮點型___,1288L _整型____,』a』__字元___,"a"__字元串___
08 __整形___,』\007』__整型___
5. C語言源程序一定要有而且只有一個__主函數___函數,程序執行時也從它開始。
6. 結構化程序設計主要有___順序__、__選擇___和__循環___三種基本結構。
三、判斷題
1. C語言不是一種結構化程序設計語言。(錯)
2. C語言是弱類型語言,為了類型轉換的方便,對類型的要求很不嚴格,在許多情況下不做類型檢查。(對)
3. C語言既具有高級語言的特點,同時也具有部分低級語言的特點。(對)
4. C源程序可以由多個文件組成,每個文件中都可有一個主函數main()。(錯)
5. C程序從main()函數開始執行,因此主函數main()必須放在程序的開頭。(錯)
6. 命名標識符時字元個數不得超過6個。(錯)
7. 對於同一個數據種類型,變數值越大,它所佔內存的位元組數越多。(錯)
8. 定義一個變數時必須指出變數類型,但是不一定必須給變數初始化。(對)
9. ""表示一個空字元串常量,』』表示一個空字元常量。(對)
10. 一個表達式中出現多種數值型數據類型,運算前先進行類型轉換。(對)
11. 浮點數不能作自增或自減運算,只有整型才可作自增或自減運算。(錯)
12. 已知a、b是整型變數,則表達式a=3,2+4,b=6,7+8是一個逗號表達式。(對)
四、問答題
1. 寫出下面表達式的值
(1)12/3*9=36
(2)int i=3,j;
i*=2+5;
i/=j=4;
i+=(j%2);
i、j的最終結果是多少看i=5,j=4
(3)int a=3,b,c;
b=(a++)+(a++)+(a++);
c=(++a)+(++a)+(++a);a、b、c的最終結果是多少看a=9,b=9,c=25

2. 下列表達式是否正確?若正確,表達式的值是什麼?
21/2=10 21/2.0= 10.5 21.0/2=10.5 21%2=1 21.0%2 21%2.0 18%15=3 15%18=15 3%15=3
五、編程題
編寫程序,在屏幕上輸出如下信息:
===================
= I am a student. =
===================
#include"stdio.h逗
void main()
{
printf("= I am a student. =");
}

④ C語言答案

C語言程序設計復習:

1、理解以下術語的含義:數組、函數、地址 指針 指針變數 直接訪問 間接訪問、結構體
2、用起泡法對10個數由小到大排序(P134例題)
5、輸入10個學生的成績,分別用函數實現下列功能:
1)計算所有學生的平均分;
2) 計算學生成績中最高分;
3) 計算學生成績中最低分;
4) 統計及格學生人數;
5) 查找成績為指定成績(如90)記錄,如果沒有,請給出提示,如果有,請統計滿足條件的記錄數。
6、有一個已經排好序的數組,今輸入一個數,要求按原來排序的規律將它插入數組中。(P153習題7.4)
7、編寫一個函數,輸入一個4位數字,要求輸出這4個數字字元,但每兩個數字字元間空一個空格。如輸入1990,應輸出「1 9 9 0」。(要求用函數)(P202習題8.8)
8、編寫一個函數,求一個字元串的長度。在main函數中輸入字元串,並輸出其長度。(要求用指針,不能使用strlen()函數) (P279習題10.6)
9、編寫一個程序,打入月份號,輸出該月的英文月名。例如,輸入「3」則輸出「March」(要求用指針數組)。(P279習題10.18)
10、將一個數組中的值按逆序重新存放。例如,輸入的數組順序為8,6,5,4,1,要求改為1,4,5,6,8。(P153習題7.5)
11、編寫一個函數用「起泡法」對輸入的10個字元按由小到大順序排序(要用函數)。(P202習題8.11)
12、將數組a中n個整數按相反順序存放(要用函數)。(P237例題10.7)
13、輸入一行文字,找出其中大寫字母、小寫字母、空格、數字及其他字元各有多少。(要求用指針實現)(P279習題10.8)
14、編寫一個函數,將兩個字元串連接(要用自定義函數,不能用strcat函數)。(P202習題8.6)
15、輸入3個字元串,按照由小到大的順序輸出。(要求用指針) (P278習題10.2)
16、輸入10整數,將其中最小的數與第一個數對換,把最大的數與最後一個數對換。寫三個函數:1、輸入10個數; 2、進行處理; 3、輸出10個數(數據對換要求用指針實現)(P278習題10.3)

參考答案:
2、用起泡法對10個數由小到大排序
#include <stdio.h>
void main()
{ int a[10]; int i,j,t;
printf("input 10 numbers :\n");
for (i=0;i<10;i++)
scanf("%d「,&a[i]);
printf(「\n");
for(j=0;j<9;j++)
for(i=0;i<10-j;i++)
if (a[i]>a[i+1])

printf("the sorted numbers :\n");
for(i=0;i<10;i++)
printf(「%d 「,a[i]);
}
3、用遞歸方法求n階勒讓德多項式的值,遞歸公式為(要求用函數):(P202習題8.13)

pn(x)= 1 n=0
x n=1
((2n-1)*x-pn-1(x)-(n-1)*pn-2(x)/n n>1

3、#include <stdio.h>
void main()
{
int x,n;
float p(int,int);
printf(「input n & x:」);
scanf(「%d,%d」,&n,&x);
printf(「n=%d,x=%d\n」,n,x);
printf(「P%d(%d)=%6.2f\n」,n,x,p(n,x));
}
float p(int n,int x)
{
if(n==0)
return 1;
else if(n==1)
return x;
else
return ((2*n-1)*x*p((n-1),x)-(n-1)*p((n-2),x))/n;
}
4、輸入3個整數,按由小到大的順序輸出(要求用指針類型)(P228例題)

4、輸入3個整數,按由小到大的順序輸出(要求用指針類型)
#include <stdio.h>
void main()
{
void sort (int*a, int*b,int*c);
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
sort(&a,&b,&c);
printf("a=%d,b=%d,c=%d\n",a,b,c);
}
void sort (int *a, int *b,int *c)
{
int tmp;
if (*a>*b)
{
tmp=*a;
*a=*b;
*b=tmp;
}
if (*a>*c)
{
tmp=*a;
*a=*c;
*c=tmp;
}
if (*b>*c)
{
tmp=*b;
*b=*c;
*c=tmp;
}

}
5、輸入10個學生的成績,分別用函數實現下列功能:
1)計算所有學生的平均分;
6) 計算學生成績中最高分;
7) 計算學生成績中最低分;
8) 統計及格學生人數;
9) 查找成績為指定成績(如90)記錄,如果沒有,請給出提示,如果有,請統計滿足條件的記錄數。

#include <stdio.h>
void main()
{
int average(int a[]);
int max(int a[]);
int min(int a[]);
int pass(int a[]);
int search(int a[],int g);
int i,j,g;
int score[10],aver,m1,m2,p,s;
printf("Please input 10 scores:\n");
for(i=0;i<10;i++)
scanf("%d",&score[i]);
printf("\n");
aver=average(score);
m1=max(score);
m2=min(score);
p=pass(score);
printf("平均分為: %d\n",aver);
printf("最高分為: %d\n",m1);
printf("最低分為: %d\n",m2);
printf("及格人數為: %d\n",p);
printf("需要查找嗎?\n");
printf("輸入1繼續查找,輸入0退出(1/0):");
scanf("%d",&j);
if(j==1)
{
printf("請輸入要查找的分數: \n");
scanf("%d",&g);
s=search(score,g);
if(s==0)
printf("沒有滿足條件的記錄");
else
printf("成績為%d的學生共有%d名\n",g,s);
}
}
int average(int a[])
{
int i;
int aver,sum=a[0];
for(i=1;i<10;i++)
sum=sum+a[i];
aver=sum/10;
return aver;
}
int max(int a[])
{
int i;
int m=a[0];
for(i=1;i<10;i++)
if(m<a[i])
m=a[i];
return m;
}
int min(int a[])
{
int i;
int m=a[0];
for(i=1;i<10;i++)
if(m>a[i])
m=a[i];
return m;
}
int pass(int a[])
{
int i;
int s=0;
for(i=0;i<10;i++)
if(a[i]>=60)
s++;
return s;
}
int search(int a[],int g)
{
int i;
int s=0;
for(i=0;i<10;i++)
if(a[i]==g)
s++;
return s;
}

6、已有一個已排好次序的數組,要求輸入一個數後,按原先排序的規律將它插入數組中。
Void main()
;
int temp1,temp2,number,end,i,j;
printf("初始數組如下:");
for (i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
printf("輸入插入數據:");
scanf("%d",&number);
end=a[9];
if(number>end)
a[10]=number;
else
{for(i=0;i<10;i++)
{ if(a[i]>number)
{temp1=a[i];
a[i]=number;
for(j=i+1;j<1;j++)
{temp2=a[j];
a[j]=temp1;
temp1=temp2;
}
break;
}
}
}
for(i=0;i<11;i++)
printf("a%6d",a[i]);
}

7、編寫一個函數,輸入一個4位數字,要求輸出這4個數字字元,但每兩個數字字元間空一個空格。如輸入1990,應輸出「1 9 9 0」。
#include <iostream>
void main()
{
void stradd(char str[]);
char str[80];
printf("輸入一串數字\n\n");
gets(str);
stradd(str);
printf("\n\n加空格後的字元串\n\n");
puts(str);
}
void stradd(char str[])
{
char a[80];
int i=0,j;
for(j=0;str[j]!='\0';j++)
{
a[i]=str[j];
a[i+1]=' ';
i+=2;
}
a[i]='\0';
for(i=0;a[i]!='\0';i++)
{
str[i]=a[i];
}
str[i]='\0';
}

8、編寫一個函數,求一個字元串的長度。在main函數中輸入字元串,並輸出其長度。(要求用指針實現)
#include "stdio.h"
int stringlength( char *str )
{int n;
n=0;
While(*str!=0)
{n++;
str++;
}
Return(n);
}

int main()
{
char str〔100〕,
int len,

printf("Please input a string: "),
scanf("%s".str),
len = stringlength( str ),

printf("The string』s length is %d.".len),
return 0;
}

9、編寫一個程序,打入月份號,輸出該月的英文月名 n。例如,輸入「3」則輸出「March」,要求用指針數組處理。
#include <stdio.h>
main()
{ char *month_name[13]={"illegal month","January","February","March","April",
"May","June","July","August","September","October","November","December"};
int n;
printf("Input month: ");
scanf("%d",&n);
if((n<=12)&&(n>=1))
printf("It is %s.\n",*(month_name+n));
else
printf("It is wrong.\n");
}
10、將一個數組中的值按逆序重新存放。例如,輸入的數組順序為8,6,5,4,1,要求改為1,4,5,6,8。
#include <stdio.h>
#define N 5;
void main()
{
int a[N],i,temp;
printf(「enter array a:\n」);
for(i=0;i<N;i++)
scanf(「%d」,&a[i]);
printf(「array a:\n」);
for(i=0;i<N;i++)

printf(「\nNow, array a:\n」);
for(i=0;i<N;i++)
printf(「%4d」,a[i]);
printf(「\n」);
}

11、編寫一個函數用「起泡法」對輸入的10個字元按由小到大順序排序(要用函數)。
#include <stdio.h>
void main()
{ char str[80];
void sort(char str[]);
printf("輸入一個字元串\n\n");
gets(str);
sort(str);
printf("\n\n字元由小到大排序為:\n\n");
puts(str);
}
void sort(char str[])
{ int i,j;
char temp;
for(i=0;i<strlen(str);i++)
{
for(j=0;j<strlen(str)-i-1;j++)
{
if(str[j]>str[j+1])
{
temp=str[j];
str[j]=str[j+1];
str[j+1]=temp;
}
}
}
}

12、將數組a中n個整數按相反順序存放(要用函數)。
#include <stdio.h>
void inv(int x[ ],int n)/*形參x是數組名*/

int temp,i,j,m=(n-1)/2;
for(i=0;i<=m;i++)
{j=n-1-i;
temp=x[i];x[i]=x[j];x[j]=temp;}
return;

void main()
{ int i,a[10]={3,7,9,11,0,6,7,5,4,2};
printf(「轉換前的數組為:\n");
for(i=0;i<10;i++)
printf("%d,",a[i]);
printf("\n");
inv(a,10);
printf(「轉換後的數組為:\n");
for(i=0;i<10;i++)
printf("%d,",a[i]);
printf("\n");

13、輸入一行文字,找出期中大寫字母、小寫字母、空格、數字及其他字元各有多少?(要求用指針實現)
#include<stdio.h>
#include<string.h>
int main()
{
char str[40];//創建字元串數組
int count[5]=;//創建計數器數組並初始化
printf("Please input a string .\n");
scanf("%s",str);
char *p=str;//指針p指向字元串數組str
int n=strlen(str);//確定輸入字元串的長度
for(int i=0;i<n;i++)
{
if(*(p+i)>='A'&&*(p+i)<='Z')
{
count[0]++;//統計大寫字母數目
}
else if(*(p+i)>='a'&&*(p+i)<='z')
{
count[1]++;//統計小寫字母數目
}
else if(*(p+i)>='0'&&*(p+i)<='9')
{
count[2]++;//統計數字數目
}
else if(*(p+i)=='')
{
count[3]++;//統計空格數目
}
else
{
count[4]++;//統計其他字元數目
}
}
printf("大寫字母 小寫字母 數字 空格 其他字元:\n");
for(i=0;i<5;i++)
{
printf("%d\t ",count[i]);//列印各統計數目
}
printf("\n\n");
return 0;
}

14、編寫一個函數,將兩個字元串連接。
#include < stdio.h >
#include<string.h>
void concatenate(char string1[],char string2[],char string[])
{
int i,j;
for(i=0;string1[i]!=』\0』;i++)
string[i]=string1[i];
for(j=0;string2[j]!=』\0』;j++)
string[i+j]=string2[j];
string[i+j]=』\0』;
}
void main()
{
char s1[100],s2[100],s[100];
printf(「input string1:」);
scanf(「%s」,s1);
printf(「input string2:」);
scanf(「%s」,s2);
concatenate(s1,s2,s)
printf(「the new string is %s」,s);
}
15、輸入3個字元串,按照由小到大的順序輸出。 (要求用指針實現)
#include <stdio.h>
void main()
{
void sort (int*a, int*b,int*c);
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
sort(&a,&b,&c);
printf("a=%d,b=%d,c=%d\n",a,b,c);
}
void sort (int *a, int *b,int *c)
{
int tmp;
if (*a>*b)
{
tmp=*a;
*a=*b;
*b=tmp;
}
if (*a>*c)
{
tmp=*a;
*a=*c;
*c=tmp;
}
if (*b>*c)
{
tmp=*b;
*b=*c;
*c=tmp;
}
}

16、輸入10整數,將其中最小的數與第一個數對換,把最大的數與最後一個數對換。寫三個函數:1、輸入10個數; 2、進行處理; 3、輸出10個數(數據對換要求用指針實現)
#include <stdio.h>
void input(int number[])
{
Int I;
Printf(「input 10 numbers:」);
For(i=0;i<10;i++)
Scanf(「%d」,&number[i]);
}
void max_min_value(int number[])
{
int *max,*min,*p,temp;
max=min=number;
For(p=number+1;p<number+10;p++)
if(*p>*max)
max=p;
else if(*p<*min)
min=p;
temp=number[0];number[0]=*min;*min=temp;
if(max=number) max=min;
temp=number[9];number[9]=*max;*max=temp;
}
void output(int number[])
{
int *p;
printf(「Now, they are: 「);
for(p=number;p<number+10;p++)
Printf(「%d」,*p);
printf(「\n」);
}
void main()
{
int number[10];
input(number);
max_min_value(number);
output(number);
}

⑤ c語言編程基礎 課後習題答案

給你分享一個特別好的練習基礎的,是網路的,一百道各種各樣的題,有題目代碼和分析。
http://tieba..com/f?kz=8618367

⑥ c語言程序設計基礎習題答案

1、
10,12,ai=2E
2、
#include
main(){
int
n,sum=0;
scanf
("%d",&n);
while(n!=0){
sum=sum+n%10;
n=n/10;
}
printf("sum=%d",sum);}
3、
#include
int
main(){
int
up
=
0,low
=
0;
char
array[100]
=
{0};
gets(array);
for(int
i
=
0;i='a'&&array[i]='A'&&array[i]<='Z'){
low++;
}
}
printf("大寫字母個數:%d,小寫字母個數:%d",up,low);
return
0;}
4、
#include
int
main(){
float
score[10]={0};
float
sum
=
0;
int
pass
=
0;
float
ave
=
0;
for(int
i
=
0;i=60){
pass++;
}
}
ave=sum/10.0;
printf("平均分%g\n",sum/10.0);
printf("及格人數%d\n",pass);
printf("高於平均分的分數:\n");
for(int
i
=0;i=ave){
printf("%g\n",score[i]);
}
}
return
0;}

⑦ C語言習題 急求答案

1
#include<stdio.h>
main()
{
int x;
printf("請輸入一個整數");

scanf("%d",&x);
printf("%d",x);
}
2
#include<stdio.h>
main()
{
int x,y;
printf("請輸入兩個整數");

scanf("%d,%d",&x,&y);
if(x>y)
{
printf("最大值為%d",x);

}
else
{
printf("最大值為%d",y);
}
}

3
#include<stdio.h>
main()
{
int a[4]={0,1,2,3,4};
int i=0;
for(i=0;i<5,i++)
printf("%d",a[i]);
}

4

#include<stdio.h>
main()
{
int a[4]={1,2,3,4,5};
int i=0;
int j=1;
for(i=0;i<5,i++)
j=j*a[i];

printf("積為:%d",j)
}

⑧ 求C語言練習題答案,這幾個題我不確定,拜託明白的幫忙看下!急用的,最好能解釋一下

9. 設int a[10];則對a數組元素的錯誤引用是( )
A.a[5] B.*(a+1) C.a[10-10] D.a(5)

D是錯誤的,因為a是數組,不是函數。

11.設double * p[6];則( C 這個沒法解釋 )
A.p是指向double型變數的指針
B.p是double型數組
C.p是指針數組,其元素是指向double型變數的指針
D.p是數組指針,指向double型數組

16.設有定義
struct rol{
long x;
float y;
} time;
*timep=&time;

問題呢?

18.C語言中,系統自動打開的文件是( D 輸入輸出設備文件,就是 stdin/stdout/stderr三個文件 )
A.二進制文件 B.隨機文件
C.非緩沖文件 D.設備文件

20.執行下列程序
#include "stdio. h"
min ()
{printf("%d\n",NULL);}
後輸出的結果是( B 一般是0,但是你寫程序的時候不要直接寫零 )
A.-1 B.0 C.1 D.2

21.C語言程序編譯時,程序中的注釋部分( D 這個沒法解釋,注釋在編譯預處理階段就被刪除了 )。
A.參加編譯,並會出現在目標程序中
B.參加編譯,但不會出現在目標程序中
C.不參加編譯,但會出現在目標程序中
D.不參加編譯,也不會出現在目標程序中

26.下列語句定義p為指向float類型變數d的指針,其中哪一個是正確的( B 沒法解釋,根據C語法得出 )。
A. float d,*p=d; B. float d,*p=&d;
C. float d,p=d; D. float *p=&d,d;

27.執行語句「for(i=0;i<10;++i,++a)scanf(〃%d〃,a);」試圖為int類型數組a〔10〕輸入數據,是錯誤的,錯誤的原因是( B )。
A.指針變數不能做自增運算 B.數組首地址不可改變
C.++i應寫作i++ D.++a應寫作a++

28.函數調用語句fun((((1,2),3),4));中參數的個數是( A 只有一個,(((1,2),3),4) 也就是4作為參數被傳遞給函數fun )。
A.1 B.2 C.3 D.4

10.設 int a [2][4], (*p)[4]=a;用指針變數p表示數組元素a[1][2]為___p[1][2]________。

12.計算機演算法通常採用以下三種方法表示:____這個,我不知道_____、___________、__________。

17.在執行輸入語句scanf(「a=%d?b=%d?c=%d」,a,b,c);時,用戶應相應的在屏幕上輸入_______a=8?b=7?c=5_______________________,才能使變數a,b,c的值分別為8,7,5。
能回答的盡量幫忙啊

⑨ c語言習題求解答。

#include <stdio.h>是引入頭文件 這個頭文件是 stdio.h標准輸入輸出
第一個int fun 是一個函數 返回整數型(int) fun是函數名 當然 括弧里(int x,int y)是兩個整數型參數
函數體由{}括起來 if(x!=y) return((x+y)/2); else return (x);這兩句是 如果x不等於y則返回(x+y)/2 的值 否則 返回 x的值
下面的main 是主函數 程序載入完頭文件自動運行main函數 一個程序必須要有main函數 一般是int main()這樣寫比較規范 int a=4,b=5,c=6;這是定義三個整數變數 a,b,c 並賦予初值 語句結束後一定要加分號 printf是輸出函數 頭文件帶的 printf(「%d」,整數變數);這句就是輸出整數變數的值 當然 整數變數的位置也可以是一個又返回值的函數 %d代表以一個整數變數替換 不懂的請追問

⑩ 頭歌的答案在哪裡找IT項目管理

在網站里查找。
項目是一個特殊的將要被完成的有限任務,它在一定時間內滿足一系列特定目標的多項工作名稱。
IT項目管理是項目管理在IT領域的應用,結合IT行業特點運用項目管理技術、理念和方法,啟動計劃實時控制和收尾等過程。