1、一 填空题1. 已知a=13,b=6, ab的十进制数值为【1】2. 如果函数不要求带回值,可用【1】来定义函数返回值为空.3. 当a=3,b=2,c=1;时,执行以下程序段后 b=【1】. if(ab) a=b; if(bc) b=c; else c=b; c=a;答:14. c语言程序的三种基本结构是:顺序结构,选择结构,【1】结构.答:循环结构5. C程序在执行过程中,不检查数组下标是否【1】.6. 若有定义:int a32=2,4,6,8,10,12;,则*(a1+1)的值是【1】.7. C语言中调用【1】函数来关闭文件.8. 在c程序中,只能给指针赋NULL值和【1】值.9. 表达式
2、 i+ 相当于表达式i=【1】.10.若x和n均是int型变量,且x和n的初值均为5,则计算表达式 x+=n+ 后x的值为 【1】,n的值为【2】. 二 判断题1. #define 和printf 都不是C语句。2. 在Turbo C中,整型数据在内存中占2个字节。3. 语句scanf(“%7.2f“,是一个合法的scanf函数。4. 如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准。5. 若有 # define S(a,b) a*b 则语句 area=S(3,2); area的值为6。6. 如果有一个字符串,其中第十个字符为n,则此字符串的有效字符为9个。7. 结构体类
3、型只有一种。8. 在C 语言中,此定义和语句是合法的:enum aa a=5,b,cbb;bb=(enum aa)5;9. 7则执行完i*=j+8;后的值为28。三 单选题1. 以下程序段的输出结果为()。 char c=“abc“; int i=0; do ;while(ci+!=0);printf(“%d“,i-1);(A)abc(B)ab(C)2(D)32. 以下叙述正确的是()。(A)在C程序中,main函数必须位于程序的最前面(B)C程序的每行中只能写一条语句(C)C语言本身没有输入输出语句(D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误答:C解析:C语言本身并不提供输入
4、输出语句,输入和输出操作是由函数来实现的。在C标准函数库中提供了一些输入输出函数,例如,printf函数和scanf函数。在使用他们时,千万不要误认为他们是C语言提供的“输入输出语句” 。printf和scanf不是C语言的关键字,而只是函数的名字。C提供的函数以库的形式存放在系统中,它们不是C语言文本中的组成部分。不把输入输出作为C语言提供的语句的目的是使C语言编译系统简单,因为将语句翻译成二进制的指令是在编译阶段完成的,没有输入输出语句可以避免在编译阶段处理与硬件有关的问题,可以使编译系统简化,而且通用性强,可移植性好,对各种型号的计算机都适用,便于在各种计算机上实现。各种版本的 C语言函
5、数库是各计算机厂商针对某一类型计算机的情况编写的,并且已编译成目标文件(. obj文件) 。它们在连接阶段与源程序经编译而得到的目标文件相连接,生成一个可执行的目标程序。如果在源程序中有printf函数,在编译时并不把它翻译成目标指令,而是在执行阶段调用已被连接的函数库中的printf函数3.已知函数的调用形式:fread(buffer,size,count,fp);其中buffer代表的是()。(A)一个整数,代表要读入的数据项总数(B)一个文件指针,指向要读的文件(C)一个指针,指向要读入数据的存放地址(D)一个存储区,存放要读的数据项4. 以下标识符中,不能作为合法的C用户定义标识符的是
6、()。(A)answer(B)to(C)signed(D)_if5. 下面判断正确的是()。(A)char *a=“china“;等价于 char *a;*a=“china“;(B)char str10=“china“;等价于char str10;str=“china“;(C)char *s=“china“;等价于 char *s;s=“china“;(D)char c4=“abc“,d4=“abc“;等价于 char c4=d4=“abc“;6. 若有int *p=(int *)malloc(sizeof(int);则向内存申请到内存空间存入整数123的语句为()。(A)scanf(“%d“
7、,p);(B)scanf(“%d“,(C)scanf(“%d“,*p);(D)scanf(“%d“,*p);7. 以下语句中,不能实现回车换行的是()。(A)printf(“n“);(B)putchar(“n“);(C)fprintf(stdout,“n“);(D)fwrite(“n“,1,1,stdout);8. int a=1,b=2,c=3; if(ac)b=a;a=c;c=b;则c的值为()。(A)1(B)2(C)3(D)不一定9. 下列程序段的输出结果为()。float x=213.82631; printf(“%3d“,(int)x);(A)213.82(B)213.83(C)21
8、3(D)3.810. enum a sum=9,mon=-1,tue; 定义了()。(A)枚举变量(B)3个标识符(C)枚举数据类型(D)整数9和-1一 判断题1. 设x=51+2,x的值 为【1】.2.数组在内存中占一段连续的存储区,由【1】代表它的首地址.3.int x=2;z=x+-1; 则x的值为【1】.4.已知 i=5,写出语句 i*=i+1; 执行后整型变量 i 的值是【1】.5. 已知a=13,b=6, a p=a; 则 *(*(p+2)+1)值为【1】.8. 当a=1,b=2,c=3时,执行以下程序段后a=【1】. if (ac) b=a; a=c; c=b;9. 下面程序段的
9、输出结果是【1】.int a=12;a=aprintf(“%dn“,a);10. int a=1,b=2,c=3; 表达式(a则while(c=getchar();是正确的C语句。3.用fopen(“file“,“r+“);打开的文件“file“可以进行修改。4. 共同体变量所占的内存长度等于最长的成员的长度。5. x*=y+8 等价于 x=x*(y+8)。6. 关系运算符,则以下while循环体将执行 【1】 次. While(ch=getchar()=e) printf(“*“);7. int x; x=(3+4)%5-6, 则x的值为【1】.8. 当a=3,b=2,c=1;时,执行以下程
10、序段后 a=【1】. if(ab) a=b; if(bc) b=c; else c=b; c=a;9. 在c程序中,只能给指针赋NULL值和【1】值.10. 设c语言中,int类型数据占2个字节,则long类型数据占【1】个字节, short类型数据占【2】个字节.二 判断题1. char *p=“girl“;的含义是定义字符型指针变量p,p的值是字符串“girl“。2. 设有数组定义: char array =“hello“; 则数组 array所占的空间为5.3. 若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义,所以此宏定义是错误的。4. 在Turbo C
11、中,下面的定义和语句是合法的:file *fp;fp=fopen(“a.txt“,“r“);5. 若有定义和语句:int a;char c;float f;scanf(“%d,%c,%f“,若通过键盘输入:10,A,12.5,则a=10,c=A,f=12.5.6. int i=20;switch(i/10)case 2:printf(“A“);case 1:printf(“B“);的输出结果为A。7. #define 和printf 都不是C语句。8. int i,*p=是正确的C说明。9. 一个include 命令可以指定多个被包含的文件。10. 关系运算符b!=c和a(b!=c)的执行顺序
12、是一样的(B)!a!=(b!=c)表达式的值为1(C)a|(b=c)执行后b的值为0(D)a(B)c=“a“;(C)c=“97“;(D)C=976. 若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是()。(A)EOF(B)0(C)非零值(D)NULL7. char a1=“abc“,a280=“1234“;将a1串连接到a2串后面的语句是()。(A)strcat(a2,a1);(B)strcpy(a2,a1);(C)strcat(a1,a2);(D)strcpy(a1,a2); 8.以下能对二维数组a进行正确初始化的语句是()。(A)int a2=1,0,1,5
13、,2,3;(B)int a3=1,2,3,4,5,6;(C)int a24=1,2,3,4,5,6;(D)int a3=1,0,1,1,1;9.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量101是()。(A)字符A(B)字符a(C)字符e(D)非法的常量10. 下列程序运行结果为:#define P 3#define S(a) P*a*amain()int ar;ar=S(3+5);printf(“n%d“,ar);(A)192(B)29(C)27(D)25一 填空题1. 下列语句输出的结果是【1】,unsigned int b=65535;p
14、rintf(“%d“,b);2. 已知a=13,b=6, ab的十进制数值为【1】.3. 程序段int k=10; while(k=0) k=k-1循环体语句执行【1】次.4. 设x=72,表达式x=(x=60)的值为【1】.5. 下面程序段的输出结果是【1】. int a=12;a=aprintf(“%dn“,a);6. c语言表达式5278的值是【1】.7. 设a取二进制数00101101,若想通过ab运算使a的高4位取反,低4位不变,则b的 二进制数是【1】.8.若所用变量均已正确定义,则执行下面程序段后的 值是【1】. for(i=0 ; i=1e-5(B)char a10,*p=a;
15、p=“china“(C)char *a;a=“china“;(D)char a10,*p;p=a=“china“4.C语言程序中必须有的函数是()。(A)#include “stdio.h“(B)main(C)printf(D)scanf5.设有 int x=11; 则表达式 (x+ * 1/3) 的值是()。(A)3(B)4(C)11(D)126.下面叙述中错误的是(A)函数的形式参数,在函数未被调用时就不被分配存储空间(B)若函数的定义出现在主调函数之前,则可以不必再加说明(C)若一个函数没有return语句,则什么值也不会返回(D)一般来说,函数的形参和实参的类型要一致7.已知year为
16、整型变量,不能使表达式(year%4=0其中buffer代表的是()。(A)一个整数,代表要读入的数据项总数(B)一个文件指针,指向要读的文件(C)一个指针,指向要读入数据的存放地址(D)一个存储区,存放要读的数据项9.以下叙述中正确的是 ()。(A)C程序中注释部分可以出现在程序中任意合适的地方(B)花括号“和”只能作为函数体的定界符(C)构成C程序的基本单位是函数,所有函数名都可以由用户命名(D)分号是C语句之间的分隔符,不是语句的一部分10.若有 char s1=“abc“,s220,*t=s2;gets(t); 则下列语句中能够实现当字符串s1大于字符串s2时,输出s2的语句是()。(
17、A)if(strcmp(s1,s1)0)puts(s2);(B)if(strcmp(s2,s1)0)puts(s2);(C)if(strcmp(s2,t)0)puts(s2);(D)if(strcmp(s1,t)0)puts(s2);填空1.复制字符串的库函数是【1】,只写函数名即可.2.表达式18 则变量C中包含的字符个数为【1】.4.下面程序段的输出结果是【1】. int a=12; a=apritnf(“%dn“,a);5.C语言把文件看作是一个【1】的序列.6.若有以下数组a,数组元素:a0a9,其值为 9 4 12 8 2 10 7 5 1 3 该数组中下标最大的元素的值是【1】.7
18、.若a是int型变量,则计算表达式 a=25/3%3 后a的值为【1】.8.复制字符串的库函数是【1】,只写函数名即可.9.若有以下数组a,数组元素:a0a9,其值为 9 4 12 8 2 10 7 5 1 3该数组中下标最小的元素名字是【1】.10.程序段int k=10; while(k=0) k=k-1循环体语句执行【1】次.判断1.进行宏定义时,宏名必须使用大写字母表示。2.若有int =10, j=0;则执行完语句if (j=0)+ +; else - -; 的值为11。3.共同体变量所占的内存长度等于最长的成员的长度。4.循环结构中的continue语句是使整个循环终止执行5.函数
19、strlen(“ASDFGn“)的值是7。6.关系运算符=1e-5a=aprintf(“%dn“,a);6.c语言表达式5278的值是【1】.7.设a取二进制数00101101,若想通过ab运算使a的高4位取反,低4位不变,则b的 二进制数是【1】.8.若所用变量均已正确定义,则执行下面程序段后的 值是【1】. for(i=0 ; i=0); 3.int x; x=-3+4%5-6, 则x的值为【1】.4.若a是int型变量,且a的初值为6,则计算表达式 a+=a-=a*a 后a的值为【1】.5.当a=3,b=2,c=1;时,执行以下程序段后 b=【1】. if(ab) a=b; if(bc)
20、 b=c; else c=b; c=a;6.若有定义:char s =“china“; 则Turbo C系统为数组s开辟【1】个字节的内存单元.7.C语言源程序的基本单位是【1】.8.调用 fopen 函数打开一文本文件,在“使用方式“这一项中, 为输入而打开需填入【1】.9.设有以下结构类型说明和变量定义,则变量a在内存所占字节数是 【1】 . Struct stud char num6; int s4; double ave; a,*p;10.int x=2,y=3,z=4; 则表达式!x+yz的值为【1】.二判断1若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t
21、没定义,所以此宏定义是错误的。2. 函数strlen(“ASDFGn“)的值是7。3. 若有 int i=10,j=2;则执行完i*=j+8;后的值为28。4. 参加位运算的数据可以是任何类型的数据。5. 字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面.6. 若i =3,则printf(“%d“,-i+);输出的值为 -4。7. 语句 printf(“%f%“,1.0/3);输出为 0.333333。8. 若 a=3,b=2,c=1 则关系表达式“(ab)=c“ 的值为“真“。9. 用fopen(“file“,“r+“);打开的文件“file“可以进行修改。
22、10. C程序中有调用关系的所有函数必须放在同一个源程序文件中。三单选1. 以下运算符中,优先级最高的运算符是()。(A)|(B)%(C)!(D)=2.若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是()。(A)fopen(“A:userabc.txt“,“r“)(B)fopen(“A:userabc.txt“,“r+“)(C)fopen(“A:userabc.txt“,“rb“)(D)fopen(“A:userabc.txt“,“w“).3. 以下for循环的执行次数是 for(x=0,y=0;(y=123) x=-3+4%-5*3, 则x
23、的值为【1】.以下do-while语句中循环体的执行次数是【1】. a=10; b=0; do b+=2; a-=2+b; while (a=0); int a=1,b=2,c=3; 执行语句a=b=c;后a的值是【1】.已知a=13,b=6,a/b的十进制数值为【1】.复制字符串的库函数是【1】,只写函数名即可.逗号表达式(a=3*5,a*4),a+5的值为【1】。int x=2,y=3,z=4; 则表达式x+y scanf(“%d“,【1】);int x=2,y=3,z=4; 则表达式x+yzi1)+2,x的值 为【1】.8. 函数调用时的实参和形参之间的数据是单向的【1】传递.9. in
24、t x=2,y=3,z=4; 则表达式!(x+y)z的值为【1】.10. int x=y=z=2;x=y=z; 则x的值为【1】.二 判断1. 如果想使一个数组中全部元素的值为0,可以写成 int a10=0*10;2. 用fopen(“file“,“r+“);打开的文件“file“可以进行修改。3. int i,*p=是正确的C说明。4. C语言中只能逐个引用数组元素而不能一次引用整个数组。5. 若i =3,则printf(“%d“,-i+);输出的值为 -4。6. 进行宏定义时,宏名必须使用大写字母表示。7. 如果有一个字符串,其中第十个字符为n,则此字符串的有效字符为9个。8. 语句 p
25、rintf(“%f%“,1.0/3);输出为 0.333333。9. C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。10. 在Turbo C中,整型数据在内存中占2个字节。三 单选1. 下列语句中,不正确的是()。(A)static char a2=1,2;(B)static int a2=1,2;(C)static char a2=1,2,3;(D)static char a2=1;2. 以下正确的描述是:在C语言程序中()。(A)函数的定义可以嵌套,但函数的调用不可以嵌套(B)函数的定义不可以嵌套,但函数的调用可以嵌套(C)函数的定义和函数的调用均不可以嵌套(D)函数的定义
26、和函数的调用均可以嵌套3. 当顺利执行了文件关闭操作时,fclose函数的返回值是()。(A)-1(B)TRUE(C)0(D)14. 已知字母a的ASCII十进制代码为97,则执行下列语句后的输出结果为()。char a=a; a-;printf(“%d,%cn“,a+2-0,a+3-0);(A)b,c(B)a-运算不合法,故有语法错(C)98,c(D)格式描述和输出项不匹配,输出无定值5. 若有说明:int a34;则数组a中各元素()。(A)可在程序的运行阶段得到初值0(B)可在程序的编译阶段得到初值0(C)不能得到确定的初值(D)可在程序的编译或运行阶段得到初值06. 以下数据中,不正确
27、的数值或字符常量是()。(A)8.9e1.2(B)10(C)0xff00(D)82.57. 以下不正确的if语句形式是()。(A)if(xy(B)if(x=y) x+=y;(C)if(x!=y) scanf(“%d“,(D)if(x按“答题”按钮进入程序环境进行调试!在“ *SPACE*”语句的下一行完成程序填空,首先将填空标志【?】删除,然后填入正确的答案,答题结束后,必须在程序环境中做好保存。当前试题文件夹:C:Exam3qtc0283CK421/*-【程序填空】-功能:输入学生成绩并显示。-*/# include struct studentchar number6;char name6
28、;int score3; stu2;void output(struct student stu2);void main()int i, j;/*SPACE*/for(i=0; ivoid string_copy(char *str_from, char *str_to)int i=0;/*SPACE*/for(; (*(【?】)=*(str_from+i)!=0; i+) ;main()static char array_str120=“i am a teacher.“;char array_str220;/*SPACE*/【?】(array_str1, array_str2);/*SPAC
29、E*/【?】(“array_str2=%sn“,array_str2);/*-【程序填空】-功能:有五个学生,每个学生有 3 门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩) ,计算出平均成绩,设原有的数据和计算出的平均分数存放在磁盘文件“stud“中。-*/#include struct studentchar num6;char name8;int score3;double avr; stu5;main()int i,j,sum;FILE *fp;/*input*/for(i=0;imain()int n,i,j;printf(“Enter iNT number,with 0 to endn“);i=j=0;scanf(“%d“,while(n!=0)/*SPACE*/if(n0)i=【?】;/*SPACE*/if(nvoid wwjt(); void swap(int *a,int *b)/*Program*/