C语言习题级答案.docx
- 文档编号:6959321
- 上传时间:2023-01-13
- 格式:DOCX
- 页数:19
- 大小:19.87KB
C语言习题级答案.docx
《C语言习题级答案.docx》由会员分享,可在线阅读,更多相关《C语言习题级答案.docx(19页珍藏版)》请在冰豆网上搜索。
C语言习题级答案
选折题
1.inta=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为(A)。
A、1
B、不一定
C、3
D、2
2.以下选项中不合法的用户标识符是B
A、Dim
B、printf
C、_123
D、A$
3.inti,j,a[2][3];按照数组a的元素在内存的排列次序,不能将数
1,2,3,4,5,6存入a数组的是(C)。
A、for(i=0;i<2;i++)for(j=0;j<3;j++)a[i][j]=i*3+j+1;
B、for(i=0;i<6;i++)a[i/3][i%3]=i+1;
C、for(i=1;i<=6;i++)a[i][i]=i;
D、for(i=0;i<3;i++)for(j=0;j<2;j++)a[j][i]=j*3+i+1;
4.以下所列的C语言常量中,错误的是___A___。
A、1.2e0.5
B、0xFF
C、2L
D、'\72'
5.若有说明:
inta[3][4]={0};则下面正确的叙述是(A)。
A、数组a中每个元素均可得到初值0
B、只有元素a[0][0]可得到初值0
C、此说明语句不正确
D、数组a中各元素都可得到初值,但其值不一定为0
6.以下正确的字符串常量是D
A、'abc'
B、'A'
C、OlympicGames
D、"\\\"
7.C语言中,char类型数据占(C)。
A、8个字节
B、4个字节
C、1个字节
D、2个字节
8.已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表
示的字符常量'\101'是____D__。
A、非法的常量
B、字符a
C、字符e
D、字符A
9.以下函数的类型是(D)
fff(floatx)
{
return5;
}
A、与参数x的类型相同
B、void类型
C、无法确定
D、int类型
10.以下叙述中正确的是(A)。
A、静态(static)类别变量的生存期贯穿于整个程序的运行期间
B、全局变量的作用域一定比局部变量的作用域范围大
C、函数的形参都属于全局变量
D、未在定义语句中赋初值的auto变量和static变量的初值都是随机值
11.下列运算符中是C语言关系运算符的是(C)。
A、&
B、~
C、!
=
D、!
12.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用
八进制表示的字符常量'\101'是(D)。
A、字符e
B、字符a
C、非法的常量
D、字符A
13.若有floatx=213.82631;,则执行下列程序段的输出结果为(B)。
printf("%3d",(int)x);
A、213.82
B、213
C、213.83
D、3.8
14.全局变量的定义不可能在(A)。
A、函数内部
B、文件外面
C、最后一行
D、函数外面
15.C语言中函数调用的方式有(A)。
A、函数调用作为语句、函数表达式或函数参数三种
B、函数调用作为语句一种
C、函数调用作为函数表达式一种
D、函数调用作为语句或函数表达式两种
16.字符串"\\\"WWW\123\xCC\t"的长度为(A)
A、8
B、9
C、10
D、14
17.若有double*p,x[10];inti=5;使指针变量p指向元素x[5]的语句为(D)。
A、p=x;
B、p=x[i];
C、p=&(x+i)
D、p=&x[i];
18.以下程序的执行结果是___A____.
main()
{intnum=0;
while(num<=2){num++;printf("%d,",num);}}
A、1,2,3,
B、1,2,3,4,
C、1,2,
D、0,1,2
19.若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数D
feof(fp)的值为()。
A、一个非0值
B、-1
C、1
D、0
20.以下对枚举类型名的定义中正确的是(D)。
A、enuma{"sum","mon","tue"};
B、enuma={sum,mon,tue};
C、enuma={"sum","mon","tue"};
D、enuma{sum=9,mon=-1,tue};
21.在执行fopen函数时,ferror函数的初值是(D)。
A、TRUE
B、1
C、-1
D、0
22.以下能正确进行字符串赋值的语句是D
A、chars[5]=“good!
”;
B、chars[5]={‘a’,‘e’,‘i’,‘o’,‘u’};
C、chars[5];s=“good!
”;
D、char*s;s=“good!
”;
23.已知p,p1为指针变量,a为数组名,j为整型变量,下列赋值语句中
不正确的是(C)。
A、p=&a[j];
B、p=a;
C、p=10;
D、p=&j,p=p1;
24.若有intx,y,z;,则执行以下程序段后的输出结果为:
C
x=1;y=5;z=3;
if(x>y)x=y;
y=z;
printf("x=%d,y=%d,z=%d",x,y,z);
A、x=5,y=3,z=5
B、x=1,y=5,z=3
C、x=1,y=3,z=3
D、x=5,y=3,z=3
25.当顺利执行了文件关闭操作时,fclose函数的返回值是(D)。
A、TRUE
B、1
C、-1
D、0
26.以下能正确定义数组并正确赋初值的语句是(D)。
A、intc[2][]={{1,2},{3,4}};
B、inta[1][2]={{1},{3}};
C、intN=5,b[N][N];
D、intd[3][2]={{1,2},{34}};
27.以下程序的执行结果是_____B___.
main()
{intw=1,x=2,y=3,z=4;
w=(w x: w; w=(w y: w; w=(w z: w; printf("%d",w);} A、2 B、4 C、3 D、1 28.以下for循环的执行次数是for(x=0,y=0;(y=123)&&(x<4);x++);(A)。 A、4次 B、是无限循环 C、3次 D、循环次数不定 29.以下函数的类型是__B____。 fff(floatx) { return5; } A、无法确定 B、int类型 C、与参数x的类型相同 D、void类型 30.关于建立函数的目的,以下正确的说法是(C)。 A、减少程序文件所占内存 B、提高程序的执行效率 C、提高程序的可读性 D、减少程序的篇幅 判断 1.若有intⅰ=10,j=0;则执行完语句 if(j=0)ⅰ++;elseⅰ--;ⅰ的值为11。 F 2.inti=20;switch(i/10){case2: printf("A"); case1: printf("B");}的输出结果为A。 F 3.C语言的函数可以嵌套定义.F 4在程序中定义了一个结构体类型后,可以多次用它来定义具有 该类型的变量。 T 5.在C语言中,对于数组的定义chara[8]="computer"是错误的.T 6.结构体类型只有一种。 F 7.函数中的形式参数是局部变量.T 8.在C语言中charstr[6]="hello",可以将字符串"hello"正确赋给数组.T 9.C语言中只能逐个引用数组元素而不能一次引用整个数组。 T 10.在C语言中charstr[]={'h','e','l','l','o'}不能将字符串"hello"正确赋给数组.T 程序设计1 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 给定n个数据,求最小值出现的位置(如果最小值 出现多次,求出第一次出现的位置即可)。 ------------------------------------------------*/ #include voidbky(); intstation(ints[],intn) { /**********Begin**********/ inti,k; k=0; for(i=1;i if(s[i] return(k); /**********End**********/ } 程序设计2 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 请编一个函数voidfun(inttt[M][N],intpp[N]), tt指向一个M行N列的二维数组,求出二维数组每列 中最小元素,并依次放入pp所指一维数组中。 二维 数组中的数已在主函数中赋予。 ------------------------------------------------*/ #include #include #defineM3 #defineN4 voidbky(); voidfun(inttt[M][N],intpp[N]) { /**********Begin**********/ inti,j; for(j=0;j { pp[j]=tt[0][j]; for(i=1;i if(tt[i][j] pp[j]=tt[i][j]; } /**********End**********/ } main() { intt[M][N]={{22,45,56,30}, {19,33,45,38}, {20,22,66,40}}; intp[N],i,j,k; printf("Theoriginaldatais: \n"); for(i=0;i { for(j=0;j printf("%6d",t[i][j]); printf("\n"); } fun(t,p); printf("\nTheresultis: \n"); for(k=0;k printf("\n"); bky(); } voidbky() { inti,j,array[3][4],p[4]; FILE*rf,*wf; rf=fopen("in.dat","r"); wf=fopen("out.dat","w"); for(i=0;i<3;i++) for(j=0;j<4;j++) fscanf(rf,"%d",&array[i][j]); fun(array,p); for(j=0;j<4;j++) { fprintf(wf,"%7d",p[j]); fprintf(wf,"\n"); } fclose(rf); fclose(wf); } /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 为一维数组输入10个整数;将其中最小的数与第一个数 对换,将最大的数与最后一个数对换,输出数组元素。 ------------------------------------------------------*/ #include main() { inta[10]; voidinput(); voidoutput(); voidmax_min(); input(a,10); max_min(a,10); output(a,10); } voidinput(int*arr,intn) { int*p,i; p=arr; printf("pleaseenter10integers: \n"); for(i=0;i /**********ERROR**********/ scanf("%d",p); } voidmax_min(int*arr,intn) { int*min,*max,*p,t; min=max=arr; for(p=arr+1;p /**********ERROR**********/ if(*p<*max) max=p; elseif(*p<*min)min=p; t=*arr;*arr=*min;*min=t; /**********ERROR**********/ if(max=arr)max=min; t=*(arr+n-1); *(arr+n-1)=*max; *max=t; } voidoutput(int*arr,intn) { int*p,i; p=arr; printf("Thechangedarrayis: \n"); /**********ERROR**********/ while(i=0;i printf("%3d",*p++); printf("\n"); } 【改错1】错误 【学生答案】 scanf("%d",p); 【参考答案】 scanf("%d",p★++); scanf("%d",arr[i]); scanf("%d",p+i); scanf("%d",arr+i); ============================================================ 【改错2】错误 【学生答案】 if(*p<*max) 【参考答案】 if(*p>*max) if(*max<*p) ============================================================ 【改错3】错误 【学生答案】 if(max=arr)max=min; 【参考答案】 if(max==arr) if(arr==max) ============================================================ 【改错4】错误 【学生答案】 while(i=0;i 【参考答案】 for(i=0;i for(i=0;n>i;i++) for(p=arr;p for(i=0;i<=n-1;i++) for(i=0;n-1>=i;i++) for(p=arr;p<=arr+n-1;) for(p=arr;arr+n-1>=p;) /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 有n个整数,使其前面各数顺序向后移m个位置,最后m个 数变成最前面的m个数。 ------------------------------------------------------*/ #include"stdio.h" main() { intnumber[20],n,m,i; printf("thetotalnumbersis: "); scanf("%d",&n); printf("backm: "); scanf("%d",&m); for(i=0;i scanf("%d,",&number[i]); scanf("%d",&number[n-1]); move(number,n,m); for(i=0;i printf("%d,",number[i]); printf("%d",number[n-1]); } move(array,n,m) /**********ERROR**********/ intn,m,array(20); { int*p,array_end; /**********ERROR**********/ array_end=(array+n-1); for(p=array+n-1;p>array;p--) /**********ERROR**********/ *p==*(p-1); *array=array_end; m--; if(m>0)move(array,n,m); } 【改错1】错误 【学生答案】 intn,m,array(20); 【参考答案】 intn,m,array[20]; ============================================================ 【改错2】错误 【学生答案】 array_end=(array+n-1); 【参考答案】 array_end=*(array+n-1); ============================================================ 【改错3】错误 【学生答案】 *p==*(p-1); 【参考答案】 *p=*(p-1); /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 从键盘输入若干行字符,输入后把他们存储到一磁盘文件 中。 在从该文件中读出这些数据,将其中的小写字母转换 成大写字母后在屏幕上输出。 -------------------------------------------------------*/ #include"stdio.h" #defineN100 main() { FILE*fp; charc,*p,s[N][20]; inti,n; printf("n=");scanf("%d",&n); /**********FILL**********/ if(n<1_____n>N)exit(0); printf("Input%dstring: \n",n); for(i=0;i scanf("%s",s[i]); /**********FILL**********/ fp=fopen("text",_____); for(i=0;i { p=s[i]; /**********FILL**********/ while(*p! ='\0') if(! ferror(fp))fputc(_____,fp); } fclose(fp); printf("\n"); /**********FILL**********/ fp=fopen("text",_____); while((c=fgetc(fp))! =EOF) { if(c>'a'&&c<='z')c-+32; putchar(c); } printf("\n"); fclose(fp); } 【空1】错误 【学生答案】 if(n<1_____n>N)exit(0); 【参考答案】 || ============================================================ 【空2】错误 【学生答案】 fp=fopen("text",_____); 【参考答案】 "w" ============================================================ 【空3】错误 【学生答案】 while(*p! ='\0') 【参考答案】 *p++ ============================================================ 【空4】错误 【学生答案】 fp=fopen("text",_____); 【参考答案】 "r" /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 数组名作为函数参数,求平均成绩。 -------------------------------------------------------*/ floataver(floata[])/*定义求平均值函数,形参为一浮点型数组名*/ { inti; floatav,s=a[0]; for(i=1;i<5;i++) /**********FILL**********/ s+=_____[i]; av=s/5; /**********FILL**********/ return_____; } voidmain() { floatsco[5],av; inti; printf("\ninput5scores: \n"); for(i=0;i<5;i++) /**********FILL**********/ scanf("%f",_____); /**********FILL**********/ av=aver(_____); printf("averagescoreis%5.2f\n",av); } 【空1】错误 【学生答案】 s+=_____[i]; 【参考答案】 a ============================
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 习题 答案