附件上传失败...C语言期末考试题及答案(1)1、构成C语言的基本单位是___B____。过程?函数?语句?命令?2、设x为整型变量,不能正确表达数学关系:5<x<10的c语言表达式是__B___。5x>5&&x<10?x==6||x==7||x==8||x==9?!(x<=5)&&(x<10)?3、在C语言中,逻辑运算符的优先级从高到低的排列顺序为__D___。&&、||、!?||、&&、!?&&、!、||?!、&&、||?4、下面语句中,正确的是__D___。printf("%c\n","student");?printf("%c\n","c");?printf("%s\n",&a);?printf("%s\n","hello");?5、对于for(表达式1;;表达式3)可以理解为__B___。for(表达式1;0;表达式3)?for(表达式1;1;表达式3)?for(表达式1;表达式1;表达式3)?for(表达式1;表达式3;表达式3)?6、执行下面程序段的结果是__B___。 main() { int x=1,a=0,b=0; switch(x) { case 0:b++; case 1:a++; case 2:a++;b++; } printf("a=%d,b=%d",a,b); }a=1,b=1?a=2,b=1?a=1,b=0?a=2,b=2?7、执行下面程序段的结果是__D___。 int x=0; do { printf(“%2d”,x--); }while(x);打印出321?打印出23?不打印任何结果?陷入死循环?8、设x=10,y=5;z=15,执行下面一段程序后z的结果是__C___。 If(x>y) if(y>z)x=y; else z=y;7?6?5?4?9、如果一个函数被说明为static,那么__B___。该函数只能被main函数调用?该函数能被当前文件的函数调用,但不能被其他文件的函数调用?该函数不能被当前文件的函数调用,可以被其他文件的函数调用?任何文件的函数都可以调用该函数?10、下面关于局部变量的描述中,错误的是__D___。函数的局部变量的有效范围只能在本函数?函数的形式参数也是局部变量?局部变量的名称不能和函数同名称?不同的函数中不能定义相同名称的局部变量?11、下列初始化字符数组的语句中,错误的是__A___。char str[5]="hello";?char str[]={'h','e','l','l','o','\0'};?char str[5]={"hi"};?char str[100]="";?12、引用数组元素时,数组下标可以是__D___。整型常量?整型变量?整型表达式?以上均可?13、 已知:char str[10],*p=str; 下面的语句中正确的是__B___。str="ABC";?p="ABC";?*str="ABC";?*p="ABC";?14、下面语句中,错误的是___D__。int i;int *p;p=&i;?int i,*p;p=&a;?int i,*p=&a;?int i,*p;*p=i;?15、下面对于结构体类型的描述正确的是__A___。结构体类型的大小为各成员变量所占内存的总和?结构体类型变量与简单数据类型变量的引用规则一致。?结构体类型的大小为其成员中所占内存空间最大的变量的大小?结构体类型的大小为其最后一个成员中所占内存空间的大小?16、C语言规定:在一个源程序中,main函数的位置____C____。必须在最开始?必须在系统调用的库函数的后面?可以任意?必须在最后?17、表达式18/4*sqrt(4.0)/8值的数据类型是 ___C____。int?float?double?不确定?18、在c语言中,char型数据在内存中的存储形式是 ___D___。补码?反码?原码?ASCII码?19、阅读以下程序,当输入的数据形式为:25,13,10<CR>时,正确的输出结果为___D___。 main() { int x,y,z; scanf("%d%d%d",&x,&y,&z); printf("x+y+z=%d\n",x+y+z); }x+y+z=48?x+y+z=35?x+z=35?不能确定?20、有如下程序 void main() { float x=2.0,y; if(x<0.0) y=0.0; else if(x<10.0) y=1.0/x; else y=1.0; printf(“%f\n”,y); } 该程序的输出结果是( C )。0.000000?0.250000?0.500000?1.000000?21、判断char型变量s是否为小写字母的正确表达式是__C____。'a'<=s<='z'?(s>='a')&(s<='z')?(s>='a')&&(s<='z')?('a'<=s)and('z'>=s)?22、执行以下语句后,y 的值为___A___。 int x,y,z; x=y=z=0; ++x || ++y && ++z;0?1?2?不确定值?23、有如下程序段: int number=0; while(number++<=3) printf(“%d\n”,number++); 则正确的执行结果是___C___。2 3 4?0 1 2?1 3?2 4?24、有如下程序 void main() { int n=9; while(n>6) { n--; printf(“%d”,n); } } 该程序段的输出结果是__B___。987?876?8765?9876?25、要使以下程序段输出10个整数,请在空格中填入一个整数。 for(i=0;i<=___B___;printf("%d\n",i+=2));15?18?20?10?26、设函数fun的定义形式为: fun(char ch,float x){…} 则以下对函数fun的调用语句中正确的是___B___。fun(“abc”,3)?t=fun(‘D’,5)?fun(‘ab’,3)?fun(‘78’,1)?27、函数求sum(int n)的功能是计算自然数1到n的和,即1+2+…+n。 Main() { printf("The sum=%d\n",sum (10)); } int sum(int n){ int s=0,i; for(i=0;i<=n;i++) _____B_____ } 请从备选答案中选择一答案,补全程序。s=s+n;return s;?s=s+i;return s;?return s;?return s+=I;?28、设函数fun的定义形式为 int fun(int a[],int n) { int s=0,i=0; for(i=0;i<n;i++)s+=a[i]; return s; } main() { int a[10]={1,2,3,4,5}; printf("sum=%d", fun(&a[2],2)); } 则程序的运行结果为___C___。3?5?7?9?29、若有说明:int a[10];则对数组元素的正确引用是___D____。a[10]?a[3,5]?a(5)?a[10-10]?30、以下不正确的定义语句是___B___。double x[5]={2.0,4,0,6,0,8,0,10.0};?int y[5]={0,1,3,5,7,9};?char c1[]={'1','2','3','4','5'};?char c2[]={'\x10','\xa','\x8'};?31、下面程序的运行结果是___B____。 #include "stdio.h" main() { char str[]="SWLIA",c; int k; for(k=0;(c=str[k])!='\0';k++) { switch(c) { case 'I':++k;break; cSWA?SW*?SW*A?SW?32、以下能正确进行字符串赋值操作的是___D___。char s[5]={"12345"};?char s[5]={'1','2','3','4','5',‘6’};?char *s;*s="12345";?char *s="12345";?33、以下程序段的运行结果是___C___。 Char a[ ]="program", *p; p=a; while (*p!='g') { printf("%c", *p-32); p++; }PROgram?PROGRAM?PRO?proGRAM?34、若有说明:char *pc[ ]={"aaa", "bbb", "ccc", "ddd"};,则以下叙述正确的是__C____。*pc[0]代表的是字符串"aaa"的首地址?*pc[0]代表的是字符'a'的首地址?pc[0]代表的是字符串"aaa"的首地址?pc[0]代表的是字符'a'的首地址?35、下列程序的运行结果是___B___。 #include <stdio.h> #include <string.h> void f (char *s, int n) { char a,*q1,*q2; q1=s;q2=s+n-1; while(q1<q2) { a=*q1++; *q1=*q2--; *q2=a;} } main() { char b[]="ABCDEFG"; f(b, sGAGGAGA?AGAAGAG?GFEDCBA?AGADAGA?36、定义如下的结构体描述同学信息 struct Student { unsigned long id; char name[30]; char class[30]; }s; 假设此同学的序号为1002,姓名为黎明,班级为冶金3班,则描述正确的为___C__。id=1002; name=黎明; class=冶金3班;?id=1002; name=”黎明”; class=”冶金3班”;?s.id=1002; s.name=”黎明”; s.class=”冶金3班”;?s.id=1002; s.name=黎明; s.class=冶金3班;?37、用来描述C程序中注释的是__C___。//??**?38、下列变量中合法的定义是__A___。short _a=2-1?long if=0xabcL?double 1_d=1.5e2?float a=1.5e2.7?39、当c的值不为0时,能够将c的值赋给变量a和b的是__C___c=b=a?(a=c)||(b=c)?(a=c)&&(b=c)?a=c=b?40、设有以下程序段,执行后的输出结果是___B__ int x=100,y=200; printf("%d",(x,y));100?200?100,200?编译出错C语言期末考试题及答案(2)1、若执行下面的程序时从键盘输入10,则输出是__B__ main( ) { int a; scanf(“%d”,&a); if(a++>10) printf(“%d\n”,++a); else printf("%d\n",a--); }12?11?10?9?2、执行下面程序段的结果是__D___ int x=0; do { printf(“%2d”,x--); }while(x);打印出321?打印出23?不打印任何结果?陷入死循环?3、执行与句:for(n=0;n++<4; ); 后,变量n的值是__C__。3?4?5?不定?4、以下关于循环的描述中,错误的是__D___。可以用for语句实现的循环一定可以用while语句实现?可以用while语句实现的循环一定可以用for语句实现?可以用do…while语句实现的循环一定可以用while语句实现?do…while语句与while语句的区别仅仅是关键字while的位置不同?5、下面的描述错误的是__C__。函数可以有多个形式参数?函数可以没有返回值?函数内可以嵌套定义函数?函数可以被其他函数调用?6、函数返回值的类型是由__A__决定的。定义函数时指定的返回类型?函数中return语句的表达式类型?主调函数的实际参数类型?主调函数的返回值类型?7、定义了一维int型数组a[10]后,下面错误的引用是__B__。a[0]=1;?a[10]=2;?a[0]=5*2;?a[1]=a[2]*a[0];?8、定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为__B__。24?25?18?17?9、下面语句中,错误的是__D__。int i; int *p; p=&i;?int i,*p; p=&a;?int i,*p=&a;?int i,*p; *p=i;?10、 已知int型二维数组a[3][4],数组元素a[1][2]的地址不能表达为__C__。&a[1][2]?a[1]+2?*a[1]+2?*(a+1)+2?11、C语言中,5种基本数据类型的存储空间长度的排列顺序为___A___。charchar=intcharchar=int=long int<=float12、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是 ___B___。7?8?6?2?13、若有说明语句:char c='\72';则变量c ___A___。包含1个字符?包含2个字符?包含3个字符?说明不合法,c的值不确定?14、若x,y均定义为整型,z定义为double型,以下不合法的scanf函数调用语句是___C___。scanf("%d%lx,%le",&x,&y,&z);?scanf("%2d * %d%lf",&x,&y,&z);?scanf("%x%*d%o",&x,&y,&z);?scanf("%x%o%6.2f",&x,&y,&z);?15、若输入字符串:abcde<回车>,则以下while循环体将执行___A___次。 while((ch=getchar())=='e') printf("*");1次?死循环?0次?5次?16、执行下面的程序段后,k的值是___C___。 k=1;n=263; do{k*=n%10;n/=10;}while(n);3?63?36?2?17、下面程序段中循环的执行次数是___B___。 a=10;b=0; do{b+=2;a-=2+b;}while(a>=0);10?3?5?4?18、下面程序段的运行结果是__D____。 x=2; do{printf("*");x--;}while(!x==0);*?***?没有输出?**?19、下面程序段的运行结果是___B___。 i=1;s=1;a=0; do{a=a+s*i;s=-s;i++;}while(i<=10); printf("%d",a);2?-2?3?0?20、有如下程序 void main() { int a=2,b=-1,c=2; if(a) if(b<0) c=0; else c++; printf("%d\n",c); } 该程序的输出结果是___A___。0?1?2?3?21、程序中对fun函数有如下说明 void fun(); 下面说明是错误的是___B___。fun函数无返回值?fun函数的返回值可以是任意的数据类型?fun函数没有形式参数?void 可以省略?22、函数求sum(int n)的功能是计算自然数1到n的和,即1+2+…+n。 main() { printf("The sum=%d\n",sum (10)); } int sum(int n){ int s=0,i; for(i=0;i<=n;i++) _____B_____ } 请从备选答案中选择一答案,补全程序。s=s+n; return s;?s=s+i; return s;?return s;?return s+=i;?23、 有以下程序 int f1(int x,int y){return x>y?x:y;} int f2(int x,int y){return x>y?y:x;} main() { int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d)); f=f1(f2(a,b),f2(c,d)); g=a+b+c+d-e-f; printf()__A___4,3,7?3,4,7?5,2,7?2,5,7?24、若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是___B___。2?3?4?无确定值?25、判断字符串s1是否大于字符串s2,应当使用___D____。if(s1>s2)?if(strcmp(s1,s2))?if(strcmp(s2,s1)>0)?if(strcmp(s1,s2)>0)?26、当运行以下程序时,从键盘输入:AhaMA Aha<CR> <CR>表示回车,则下面程序的运行结果是___A____。 #include "stdio.h" main() { char s[80],c='a'; int i=0; scanf("%s",s); while(s[i]!='\0') { if(s[i]==c)ahAMa?AhAMa?AhAMa ahA?ahAMa ahA?27、以下程序执行后a的值为___C____。 main( ) { int a,m=2, k=1, *p=&k; a=p!=&m; printf("%d\n",a); }-1?0?1?2?28、以下能正确读入字符串的程序段是____C___。char *p;scanf("%s", p);?char str[10];scanf("%s", &str);?char str[10], *p;p=str; scanf("%s", p);?char str[10], *p=str;scanf("%s", p[1]);?29、若有定义:int i, x[3][4];,则不能将x[1][1]的值赋给变量i的语句是___B___。i=x[1][1] ?i=*(*(x+1))?i=*(*(x+1)+1) ?i=*(x[1]+1)?30、下面程序的运行结果是____A___。 # include <stdio.h> # include <string.h> fun(char *s) { char t,*a,*z; a=s; z=s+strlen(s)-1; while(a++<z--) { t=*a++; *a=*z--; *z=t;} } main() { char *p; p="aabdddfg?afcdebg?gbedcfa?gfedcba?31、用来描述C程序中注释的是__C___/ /??* *?32、对于"xy\n\102\\\'"字符串的长度是__B___7?6?12?13?33、已知:int x=10;执行语句x-=x+x;后x的值是__A___-10?10?-20?20?34、下列描述中,正确的是__A___所有的输入/输出都是通过调用库函数处理的?所有的输入/输出都是通过输入/输出语句实现的?getchar和putchar可以省略#include?在输入/输出格式中的*表示跳过数据的含义?35、设x=10,y=5;z=15,执行下面一段程序后z的结果是__C___ if(x>y) if(y>z)x=y; else z=y;7?6?5?4?36、执行下面程序段的结果是__D___ int x=0; do { printf(“%2d”,x--); }while(x);打印出321?打印出23?不打印任何结果?陷入死循环?37、以下关于switch语句和break语句的描述正确的是__D___在switch语句中必须使用break语句?break语句只能用于switch语句体中?break语句只能用于循环语句中?在switch语句中可以使用break语句?38、与语句while(!x)等价的语句是__A___while(x==0)?while(x!=0)?while(x!=1)?while(~x)?39、下面的描述错误的是__C___?函数可以有多个形式参数??函数可以没有返回值??函数内可以嵌套定义函数??函数可以被其他函数调用?40、 下面关于局部变量的描述中,错误的是__D___?函数的局部变量的有效范围只能在本函数??函数的形式参数也是局部变量??局部变量的名称不能和函数同名称??不同的函数中不能定义相同名称的局部变