C语言复习题及答案老师给的12606.pdf

上传人:得****3 文档编号:83587930 上传时间:2023-03-31 格式:PDF 页数:26 大小:760KB
返回 下载 相关 举报
C语言复习题及答案老师给的12606.pdf_第1页
第1页 / 共26页
C语言复习题及答案老师给的12606.pdf_第2页
第2页 / 共26页
点击查看更多>>
资源描述

《C语言复习题及答案老师给的12606.pdf》由会员分享,可在线阅读,更多相关《C语言复习题及答案老师给的12606.pdf(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、复习 A:一、单项选择题 1、如果要把常量 327 存入变量 a 中,a 不能定义的类型是哪一个 (B )A)int B)char C)long D)float 2、若 x 为 unsigned int 型变量,则执行下列语句后 x 值为(D )x=65535;printf(“%dn”,x);A)65535 B)1 C)无定值 D)-1 3、有以下程序 main()int a=1,b=2,m=0,n=0,k;k=(n=ba)|(m=ab);printf(%d,%dn,k,m);程序运行后的输出结果是(C)A)0,0 B)0,1 C)1,0 D)1,1 4、在 C 语言中,如果下面的变量都是 i

2、nt 类型,则输出的结果是(C )。sum=pad=5;pAd=sum+,pAd+,+pAd;printf(%dn,pad);A)7 B)6 C)5 D)4 5、以下程序的输出结果是(A)。main()int a=4,b=5,c=0,d;d=!a&!b|!c;printf(%dn,d);A)1 B)0 C)非 0 的数 D)-1 6、当执行以下程序段时(A)。x=-1;do x=x*x;while(!x);A)循环体将执行一次 B)循环体将执行两次 C)循环体将执行无限次 D)系统将提示有语法错误 7、全局变量的存储类型可以定义为(D)。A)auto 或 static B)extern 或 r

3、egister C)auto 或 extern D)extern 或 static 8、定义全局变量时,若变量的的存储类别缺省,则默认的存储类型是(C )。A)auto B)register C)extern D)static 9、已知:int a,x;则正确的赋值语句是(C )。A)a=(a1+a2)/2;B)a*=*a+1;C)a=(x=1,x+,x+2);D)a=good;10、已知:int a,*p=&a;则下列函数调用中错误的是(D )。A)scanf(%d,&a);B)scanf(%d,p);C)printf(%d,a);D)printf(%d,p);11、下述程序的输出结果是(D

4、 )。#include void main()struct complex int x;int y;cnum2=1,3,2,7;printf(“%d”,cnum0.y/cnum0.x*cnum1.x);A)0 B)1 C)3 D)6 12、下述程序的输出结果是(B)。#include void main()union unsigned char c;unsigned int i4;z;0=0 x39;1=0 x36;printf(“%c”,;A)6 B)9 C)0 D)3 13、下述关于 C 语言文件操作的结论中,(B )是正确的。A)对文件操作必须先关闭文件 B)对文件操作必须先打开文件 C

5、)对文件操作顺序无要求 D)对文件操作前必须先测试文件是否存在,然后再打开文件 14、以下程序的输出结果是(C)。main()char ch34=123,456,78,*p3;int i;for(i=0;i3;i+)pi=chi;for(i=0;i3;i+)printf(%s,pi);A)0 B)123 456 780 C)D)147 15、对于所定义的二维数组 a23,元素 a12是数组的第(D)个元素。A)3 B)4 C)5 D)6 1、赋值运算符的优先级低于关系运算符()。2、条件运算符的结合方向是“自左向右”()。3、C 语句的循环语句中循环体如果包含一个以上的语句,必须以复合语句形式

6、出现()。4、C 程序中的函数不能嵌套调用,但可嵌套定义()。5、若自定义函数要求函数名返回一个值,则该函数体中必须要有 return 语句()。6、当形式参数为指针变量名时,实际参数可为指针变量名、数组名或其它类型变量的首地址()。7、若有说明:static int a34;,则数组 a 中各数组元素可在程序的编译阶段得到初值 0()。8、若用数组名作为函数调用时的实参,则实际上传递给形参数组的是数组的第一个元素的值()。9、利用指针和结构体类型可以构成表、树等复杂的数据结构()。10、共用体变量的地址和它的各成员的地址都是同一地址()。11、printf 函数中的“%0”格式参数表示用来输

7、出 unsigned 型数据()。12、在一个 C 程序中,所有要使用的变量和要调用的函数都必须在 main()函数中定义()。13、赋值运算符的结合性是“自右至左”()。14、一个 C 程序可以由多个源程序文件组成()。15、do-while 语句构成的循环,当 while 语句中的表达式的值为零时结束循环()。三、写出下面各程序的运行结果 1、#include main()int i=0,j=0,k=0,m;for(m=0;m4;m+)switch(m)case 0:i=m+;case 1:j=m+;case 2:k=m+;case 3:m+;printf(“n%d,%d,%d,%d”,i

8、,j,k,m);2、#include main()int i=1;while(i=15)if(+i%3!=2)continue;else printf(“%d”,i);3、#include add1(int a,int n)int i;for(i=0;in;i+)ai+;main()static int array=0,1,2,3,4,5,6,7,8,9;int j;add1(array,10);for(j=0;j10;j+)printf(“%d”,arrayj);4、union data long w;float x;int y;char z;beta;main()=123456;=888;

9、=;=x;printf(“%c”,;5、#include typedef struct student char name10;long sno;float score;STU;main()STU a=zhangsan,2001,95,b=Shangxian,2002,90,c=Anhua,2003,95,d,*p=&d;d=a;if(strcmp,0)d=b;if(strcmp,0)d=c;printf(%ld%sn,p-name);四、程序填空 1、以下程序是从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入,请将缺省语句填上。main()float x,am

10、ax,amin;scanf(“%f”,&x);amax=x;amin=x;while()if()amax=x;if()amin=x;scanf(“%f”,&x);printf(“amax=%f,amin=%fn”,amax,amin);2、下面的程序是用指针来交换两个数据,请将缺省语句填上。void exchange(int*p,int*q)int t;t=*p;*p=*q;*q=t;main()int a,b,*x,*y;a=10;b=20;x=&a;printf(“%d%dn”,*x,*y);五、程序设计题 有 10 个学生,每个学生的数据包括学号、姓名、3 门课的成绩,从键盘输入 10

11、个学生数据,要求打印出3 门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3 门课的成绩、平均分数。2、用自定义函数和数组求 n 个数的平均值,并用主函数调用 参考答案:一、单项选择题 1、B 2、D 3、C 4、C 5、A 6、A 7、D 8、C 9、C 10、D 11、D 12、B 13、B 14、C 15、D 二、判断题()2、()3、()4、()5、()6、)7、()8、()9、()10、()11、()12、()13、()14、()15、()三、写出程序的运行结果 1、答案是:0,1,2,5 2、答案是:2 5 8 11 14 3、答案是:4、答案是:x 5、答案是:2002S

12、hangxian 四、程序填空 1、答案是:x=0 xamax xamin 2、答案:y=&b;exchange(x,y);五、程序设计题 1、参考答案:#define N 10 struct student char num6;char name8;int score4;float ave;stuN;main()int i,j,max,maxi,sum;float average;/*输入*/for(i=0;iN;i+)printf(“nInput scores of student%d,n”,i+1);printf(“No.:”);scanf(“%s”,stui.num);printf(“

13、name:”);scanf(“%s”,stui.name);for(j=0;j3;j+)printf(“score%d:”,j+i);scanf(“%d”,&stui.scorej);/*计算*/average=0;max=0;maxi=0;for(i=0;iN;i+)sum=0;for(j=0;jmax)max=sum;maxi=i;average/=N;/*打印*/printf(“NO.name score1 score2 score3 averagen”);for(i=0;iN;i+)printf(“%s%10s”,stui.num,stui.name);for(j=0;j3;j+)pr

14、intf(“%9d”,stui.scorej);printf(“%n”,stui.avr);printf(“average=%n”,average);printf(“The highest score is:%s,score total:%d”,stumaxi.name,max);2、参考答案:float average(float a,int n)float aver=0;int j;for(j=0;jn;j+)aver=aver+aj;aver=aver/n;return aver;main()float x10,y;int j;for(j=0;j10;j+)scanf(“%f”,&xj)

15、;y=average(x,10);printf(“aver=%.2fn”,y);复习 B:一、单项选择题 1、逗号表达式 2,4,6,8 的值为(d )。A)2 B)4 C)6 D)8 2、以下选项中非法的表达式是(d )A)0=x&x100 B)i=j=0 C)(char)(65+3)D)x+1=x+1 3、若定义 float a;现要从键盘输入 a 的数据,其整数位为 3 位,小数位为 2 位,则 选用(a )。A)scanf(“%f”,&a);B)scanf(“%”,a);C)scanf(“%”,&a);D)scanf(“%f”,a);4、下列程序的运行结果是(d )main()int

16、a=3,b=2,c=1,k=4;printf(%dn,ka k:cb c:a);A)4 B)3 C)2 D)1 5、以下程序中,while 循环的循环次数是(d)。main()int i=0;while(i10)if(i1)continue;if(i=5)break;i+;A)1 B)10 C)6 D)死循环,不能确定次数 6、执行语句:for(i=1;i+4;)后;变量 i 的值是(c)。A)3 B)4 C)5 D)不定 7、有关函数参数,下列说法不正确的是(c )。A)实参可以将数据传给形参;B)实参和形参是不同的变量;C)形参可以将数据传给实参;D)实参和形参必须个数相等,类型一致。8、

17、C 语言中,变量和函数具有两个属性是(b )。A)作用域和生存期 B)类型和存储类别 C)作用域和类型 D)作用域和存储类别 9、说明语句“int (*p)():”的含义是(c )。A)p 是一个指向一维数组的指针变量 B)p 是指针变量,指向一个整型数据 C)p 是一个指向函数的指针,该函数的返回值是一个整型 D)以上都不对 10、说明语句int*(*p);的含义是(d)。A)p 是一个指向 int 型数组的指针 B)p 是指针变量,它构成了指针数组 C)p 是一个指向函数的指针,该函数的返回值是一个整型 D)p 是一个指向函数的指针,该函数的返回值是一个指向整型的指针 11、下述程序的执行

18、结果是(a)。#include union un int i;char c2;void main()union un x;0=10;1=1;printf(“n%d”,;A)266 B)11 C)265 D)138 12、若程序中有如下的说明和定义:struct ex int x,y;struct ex x,y;则会发生的情况是(a )。A)编译时错 B)程序能顺利编译、连接、执行 C)能顺利编译和连接,但不能执行 D)能通过编译,但连接出错 13、C 语言可以处理的文件类型是(b)。A)文本文件和数据文件 B)文本文件和二进制文件 C)数据文件和二进制文件 D)数据代码文件 14、下面的 fo

19、r 语句(c)。for(x=0,y=0;(y!=123)&(x4);x+)A)是无限循环 B)循环次数不定 C)循环执行 4 次 D)循环执行 3 次 15、若有如下说明:struct char ch;int i;double x;arr23=a,1,b,2,c,3,;则表达式(b )的值为 2。A)arr01.ch B)arr01.i C)arr00.i D)arr02.i 二、判断题 1、条件运算符的结合方向是“自左向右”()。2、switch 语句中每一个 case 的常量表达式的值必须互不相同()。3、循环语句中循环体允许包含一个以上的语句,可以不以复合语句形式出现()。4、构成 C

20、程序的源文件之间以及函数与函数之间,相互位置可以任意()。5、C 程序中的函数不能嵌套定义,但可嵌套调用()。6、从变量的作用域角度来分,可以分为全局变量和局部变量()。7、从终端输入一个字符串给字符数组,该字符串两端不必用双引号括起来()。8、若有说明:int a 4=0,0;,则只有 a00和 a01可得到初值 0,其余元素均得不到初值 0()。9、利用指针和结构类型不能构成更复杂的数据结构()。10、共用体类型可以出现在结构体类型定义中()。11、当一个 case 语句末包含 break 语句时,执行完该 case 语句后跳出 switch 结构()。12、宏定义中的标识符可以用大写字母

21、,也可以用小写字母()。13、do-while 语句构成的循环,当 while 语句中的表达式的值为非零时结束循环()。14、用“%”作求余运算时,该运算符两侧均应为整型数据()。15、一个逗号表达式可以与另一个表达式组成一个新的逗号表达式()。三、写出程序的运行结果 1、#include main()int a=1,b=3,c=5,d=4;if(ab)if(cd)x=1;else if(ac)if(bd)x=2;else x=3;else x=6;else x=7;printf(“x=%d”,x);2、#include main()int k,j,m;for(k=5;k=1;k-)m=0;f

22、or(j=k,j=5;j+)m+=k*j;printf(“m=%dn”,m);3、#include main()union Exa struct int a;int b;out;int c;int d;e;=1;=2;printf(%d%d,4、#include“”main()int a=1,2,3,4,i,j,s=0;j=1;for(i=3;i=0;i-)s=s+ai*j;j=j*10;printf(“s=%dn”,s);5、#include#include main()char s1=som things;char s2=test;char s3=good;printf(%sn,strca

23、t(strcpy(s1,s2),s3);四、程序填空 1、下面程序输出 100 到 200 之间的素数,每行输出 10 个素数,请将缺省语句填上,使算法完整。#include“”main()int m,k,i,n=0;for(m=101;m=200;m=m+2)if()printf(“n”);k=sqrt(m);for(i=2,i=k;i+)if()break;if(i=k+1)printf(“%d”,m);n=n+1;2、一个函数 days,实现求某月某日是该年的第多少天。由主函数将年、月、日传递给 days 函数,计算后将日数传回主函数输出,请将缺省语句填上,使算法完整。struct y_

24、m_d int year;int month;int day;date;main()int days(int,int,int);int i,day_sum;printf(“input year,month,day:”);scanf(“%d,%d,%d”,&,&,&;day_sum=days();printf(“n%d/%d is the%d th day in%d.”,day_sum,;days(int year,int month,int day)int day_sum,i;int day_tab13=0,31,28,31,30,31,30,31,31,30,31,30,31;for(i=1

25、;i=3)return(day_sum);五、程序设计题 1,学生的记录由学号和成绩组成,N 名学生的数据已在主函数中放入结构体数组 s 中,请编写函数fun,它的功能是:把分数最低的学生数据放在 h 所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。#define N 16 typedef struct char num10;int s;STREC;int fun(STREC*a,STREC*b)main()STREC sN=“GA05”,85,“GA03”,76,“GA02”,69,“GA04”,85,“GA01”,91,“GA07”,72,“GA08”,64,

26、“GA06”,87,“GA015”,85,“GA013”,96,“GA012,64,“GA014”,91,“GA011”,91,“GA017”,64,“GA018”,64,“GA016”,72;STREC hN;int i,n;n=fun(s,h);printf(“The%d lowest score:n”,n);for(i=0;in;i+)printf(“%d%4dn”,hI.num,hI.s);printf(“n”);2、从键盘输入一批字符(回车键结束),存入一个磁盘文件中 参考答案:一、单项选择题 1、D 2、D 3、A 4、D 5、D 6、C 7、C 8、B 9、C 10、D 11、A

27、 12、A 13、B 14、C 15、B 二、判断题 1、()2、()3、()4、()5、()6、()7、()8、()9、()10、()11、()12、()13、()14、()15、()三、写出程序的运行结果 1、答案是:x=2 2、答案是:m=15 3、答案是:48 4、答案是:s=1234 5、答案是:testgood 四、程序填空 1、答案是:n%10=0 m%i=0 2、答案是:,day_sum=0;day_sum+=1;五、程序设计题 1、参考答案:STREC fun(STREC*a,char*b)static STREC h=“”,-1;int k;for(k=0;kN;k+)if

28、(!strcmp(ak.num,b)h=ak;break;return h;2、参考答案:main()FILE*fp;char ch;fp=fopen(“”,”w”);ch=getchar();while(ch!=n)fputc(fp,ch);ch=getchar();fclose(fp);复习 C:一、单项选择题 1、有定义语句:int x,y;,若值 11,变量 y 得到数值 12,下面四组输入要通过 scanf(%d,%d,&x,&y);语句使变量 x 得到数形式中,错误的是(A )A)11 12 B)11,12 C)11,12 D)11,12 2、若有语句 int a=1,b=2,c=

29、3;则以下值为 0 的表达式是(D )A)a&b B)ab)|(bc)D)(!(a+b)=c&a)3、设 int a=9;则 printf(%d,%dn,a,a+);的输出结果是(C )。A)9,10 B)10,9 C)9,9 D)10,10 4、以下叙述正确的是(C)。A)可以把 define 和 if 定义为用户标识符 B)可以把 define 定义为用户标识符,但不能把 if 定义为用户标识符 C)可以把 if 定义为用户标识符,但不能把 define 定义为用户标识符 D)define 和 if 都不能定义为用户标识符 5、运行以下程序后,如果从键盘上输入 65 14,则输出结果为(A

30、)。main()int m,n;printf(Enter m,n:);scanf(%d%d,&m,&n);while(m!=n)while(mn)m-=n;while(nm)n-=m;printf(m=%dn,m);A)m=3 B)m=2 C)m=1 D)m=0 6、运行下面的程序运行后,如果从键盘上输人 5,则输出结果是(A)。main()int x;scanf(%d,&x);if(x-5)printf(%dx);else printf(%dx+);A)3 B)4 C)5 D)6 7、定义函数时,若函数的类型缺省,则函数的默认类型是(D)。A)char B)void C)float D)in

31、t 8、设有说明 int(*prt)M;其中的标识符 prt 是(C )。A)M 个指向整型变量的指针 B)指向 M 个整型变量的函数指针 C)一个指向具有 M 个整型元素的一维数组的指针 D)具有 M 个指针元素的一维指针数组,每个元素都只能指向整型变量 9、已知函数说明语句:void*fx();则它的含义是(C )。A)函数 fx 的返回值是一个空类型的指针 B)函数 fx 的返回值可以是任意的数据类型 C)函数 fx 无返回值 D)指针 fx 指向一个函数,该函数无返回值 10、对于下述定义,不正确的叙述是(C)。union data int i;char c;float f;a,b;A

32、)变量 a 所占内存的长度等于成员 f 的长度 B)变量 a 的地址和它的各成员地址都是相同的 C)可以在定义时对 a 初始化 D)不能对变量 a 赋值,故 a=b 非法 11、C 语言库函数 fgets(str,n,fp)的功能是(D )。A)从文件 fp 中读取长度 n 的字符串存入 B)从文件 fp 中读取长度不超过 n-1 的字符串存入 str 指向的内存 C)从文件 fp 中读取 n 个字符串存入 str 指向的内存 D)从串 str 读取至多 n 个字符到文件 fp 12、下述程序向文件输出的结果是(B)。#include void main()FILE *fp=fopen(“TE

33、ST”,“wb”);fprintf(fp,“%d%c%d”,58,-,2278);fclose(fp);A)58 75273-2278 B)C)5875273-2278 D)因文件为二进制文件而不可读 13、下面程序输出结果是(B)。#define MAX 5 int aMAX,k;main()printf(n);fun1();fun3();printf(t);fun2();fun3();fun1()for(k=0;kMAX;k+)ak=k+k;fun2()int aMAX,k;for(k=0;k5;k+)ak=k;fun3()int k;for(k=0;kMAX;k+)printf(%3d,

34、*(a+k);A)0 2 4 6 8 0 2 4 6 8 B)0 2 4 6 8 0 1 2 3 4 C)0 1 2 3 4 0 2 4 6 8 D)0 1 2 3 4 0 1 2 3 4 14、已知:int x;执行下面的程序段后,输出结果为(C )。for(x=3;x6;x+)printf(x%2)“*%d”:“#%dn”,x);A)*3 B)#3 C)#3 D)*3#4#4 *4 *4#5 *5 *5#5 15、说明语句“int (*r)():”的含义是(D )。A)r 是一个指向一维数组的指针变量 B)r 是指针变量,指向一个整型数据 C)r 是一个指向函数的指针,该函数的返回值是一个

35、整型 D)以上都不对 二、判断题 1、switch 语句执行完一个 case 后面的语句后,流程控制转移到下一个 case 继续执行()。2、if 语句的条件表达式必须是逻辑表达式()。3、C 语句的一个循环体内允许又包含另一个完整的循环结构()。4、C 程序以函数为单位进行编译()。5、由多个源文件组成一个程序时,主函数只能出现在一个源文件中()。6、从变量的作用域角度来分,可以分为静态变量和动态变量()。7、如果一个字符数组中包含一个以上结束符0,则遇最后一个0时输出才结束()。8、gets()函数的作用是从终端输入一个字符串到字符数组,并且将0也装入该数组()。9、不能将一个结构体变量作

36、为一个整体进行输入和输出()。10、在 C 编译中,对枚举元素按常量处理()。11、C 程序中的 main()函数必须放在程序的开始部分()。12、switch 后面括号内的表达式可以是整型表达式或字符型表达式()。13、宏定义是用标识符代替一个字符串,只作简单的置换,不作语法检查()。14、C 语言中,“&”运算符作为单目运算符时表示的是取地址运算,作为双目运算符时表示的是按位与运算()。15、do-while 语句构成的循环必须用 break 语句才能退出()。三、写出程序的运行结果 1、main()int i,j;float s;for(i=7;i4;i-)s=0;for(j=i;j3;

37、j-)s=s+i*j;printf(“s=%fn”,s);2、#include main()int k=1;char c=A;do switch(c+)case A:k+;break;case B:k-;case C;k+=2;break;case D:k=k%2;continue;case E:k=k*2;break;default:k=k/3;k+;while(cF);printf(“k=%dn”,k);3、#include struct score int math;int eng;int comp;struct stu char name12;char sex;long StuClas

38、s;struct score sub;main()struct stu student1=Li Ming,M,990324,88,80,90;struct stu student2;student2=student1;0=H;1=u;=990325;printf(%s,%c,%ld,%d,%d,%dn,、#include“”main()char str=”7a8b9c”;int i;for(i=0;stri!=0;i+)if(stri=0&stri=9)printf(“%c”stri);5、#include“”main()int a=0,2,5,8,12,15,23,35,60,65;int

39、x=15,i,n=10,m;i=n/2+1;m=n/2;while(m!=0)if(xai)i=i-m/2;m=m/2;else break;printf(“result=%dn”,i+1);四、程序填空 1、华氏和摄氏的转换公式为:c=5/9*(F-32),其中 c 表示摄氏的温度,F 表示华氏的温度。要求输出从华氏 0 度到华氏 300 度,每隔 20 度输出一个值。main()int upper,step;float fahr=0;celsius;upper=300;step=20;while(upper)printf(“%4.0f,%n”,fahr,celsius);答案是:fahr

40、celsius=5/9*(fahr-32)fahr+=step 2、下面程序的功能是从键盘输入 10 个整数,去掉一个最大数和一个最小数,然后求剩下的 8 个数的平均值,请填空。#include“”void main()int t,a10,max,min;float aver;for(t=0;t10;t+)scanf(“%d”,&at);aver=min=max=a0;for(t=1;tat);aver=aver+at;aver=aver-max-min;aver=aver/;printf(“Aver=%n”,aver);五、程序设计题 1,利用结构类型分别写出复数的加、减的运算函数,并在主函

41、数中调用这两函数,求任意两复数的和与差。2,木马和板凳共 33 只,共有 100 只脚,编程求木马和板凳各有多少只。参考答案:一、单项选择题 1、A 2、D 3、B 4、B 5、C 6、B 7、D 8、C 9、A 10、D 11、B 12 C 13、A 14、D 15、C 二、判断题 1、()2、()3、()4、()5、()6、()7、()8、()9、()10、()11、()12、()13、()14、()15、()三、写出程序的运行结果 1、答案是:s=2、答案是:k=1 3、答案是:Hu Ming,M,990325,83,80,90 4、答案是:789 5、答案是:result=4 四、程序

42、填空 1、答案是:fahr celsius=5/9*(fahr-32)fahr+=step 2、答案是:maxat min=at 五、程序设计题 1,参考答案:struct complex float re;float im;fx,fy,fz;add()=+;=+;printf(“fx+fy=%+i*%n”,;sub()=main()printf(“Enter four reals:n”);scanf(“%f,%f,%f,%f”,&,&,&;add();sub();mul();div();2,参考答案:#include main()int x,y;for(x=0;x34;x+)for(y=0;

43、y26;y+)if(3*x+4*y=100&x+y=33)printf(x=%dty=%dn,x,y);复习 D:一、单项选择题 1、下列不正确的转义字符是(C )A)B)C)074 D)0 2、执行 int x=3,y=2;后,则表达式 x=(y=3)的值是(B )。A)0 B)1 C)2 D)3 3、设 char x=a;则 printf(x=%c,y=%c n,x,97);的输出是(D )。A)x=a,y=97 B)x=97,y=a C)x=97,y=97 D)x=a,y=a 4、若有定义:float w;int a,b;则合法的 switch 语句是(C)。A)switch(w)cas

44、e:printf(*n);case:printf(*n);B)switch(a);case 1 printf(*n);case 2 printf(*n);C)switch(b)case 1:printf(*n);default:printf(n);case 1+2:printf(*n);D)switch(a+b);case 1:printf(*n);case 2:printf(*n);default:printf(n);5、以下程序的输出结果是(D)。main()int a,b;for(a=1,b=1;a=10)break;if(b%3=1)b+=3;continue;printf(%dn,a

45、);A)101 B)6 C)5 D)4 6、函数调用语句“f(el,e2),(e3,e4,e5);”中参数的个数是(B )。A)1 B)2 C)4 D)5 7、选择出正确的说明语句(D )。A)int aa;B)int a3,4 C)int a ;D)int(*a)10;8、已知:char s100;int i;则在下列引用数组元素的语句中,错误的表示形式是(D )。A)si+10 B)*(s+i)C)*(i+s)D)*(s+)+i)9、对于如下的结构体定义,若对变量 person 的出生年份进行赋值,(C )是正确的赋值语句。struct date int year,month,day;st

46、ruct worklist char name20;char sex;struct date birthday;person;A)year=1976 B)=1976 C)D)=1976 10、若 fp 是指向某文件的指针,且已读到文件的末尾,则表达式 feof(fp)的返回值是(C )。A)EOF B)1 C)非零值 D)NULL 11、已知一个文件中存放若干学生档案记录,其数据结构如下:struct st char num10;int age;float s5;定义一个数组:struct st a10;假定文件已正确打开,(B )不能正确地从文件中读入 10 名学生数据到数组 a 中。A)f

47、read(a,sizeof(struct st),10,fp);B)for(i=0;i10;i+)fread(ai,sizeof(struct st),1,fp);C)or(i=0;i10;i+)fread(a+i,sizeof(struct st),1,fp);D)or(i=0;i5;i+=2)fread(a+i,sizeof(struct st),2,fp);12、以下程序的输出结果是(C )。main()char ch34=123,456,78,*p3;int i;for(i=0;i3;i+)pi=chi;for(i=0;i3;i+)printf(%s,pi);A)0 B)123 456

48、 780 C)D)147 13、已知:int x=6;执行语句“x+=x-=x*x;”后,x 的值为(B)。A)36 B)-60 C)60 D)-24 14、下述程序的输出结果是(B )。#include void main()struct st int x;unsigned a:2;unsigned b:2;printf(“n%d”,sizeof(struct st);A)B)3 C)2 D)不确定 15、在下程序的输出结果是(C )。#include#define SUM(x)+x#define PRT(y)printf(“%d”,(int)(y)#define prt(y);PRT(y)

49、;putchar(n)void main()int x=3;prt(SUM(3)*x);A)11 B)12 C)17 D)有语法错误,无输出 二、判断题 1、switch 语句是多分支选择语句()。2、条件表达式中三个表达式的类型可以不同()。3、C 语句的一个循环体内不允许又包含另一个完整的循环结构()。4、C 函数体一般由说明语句和执行语句两部分组成()。5、C 程序以源程序为单位进行编译()。6、在函数内部或复合语句内部定义的变量称为内部变量,是局部变量()。7、C 语言规定只能逐个引用一维字符数组的元素而不能一次引用整个数组()。8、如果一个字符数组中包含一个以上结束符0,则遇第一个0

50、时输出就结束()。9、可以定义一个指针变量,用来指向一个结构体变量()。10、不能用 typedef 声明新的类型名来代替已有的类型名()。11、执行 C 语言程序时,总是从第一个定义的函数开始执行()。12、当 switch 语句中的表达式的值与任何一个 case 语句中的常量表达式都不相等时,则执行 default 后面的语句()。13、在 if 语句与 else 语句的嵌套中,else 语句总是和靠近它最近的 if 语句配对()。14、for 循环中,当循环条件表达式为真时结束循环()。15、宏定义不是 C 语句,因此不必在行末加“;”()。三、写出程序的运行结果 1、#include

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁