1、C语言习题级参考答案测试题111.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是(B)。A、char s10;strcpy(s,abcdefg);B、char s10;s=abcdefg;C、char s10=abcdefg;D、char t=abcdefg,*s=t2. 下列语句的输出结果是(B)。printf(%dn,(int)(2.5+3.0)/3);A、2B、1C、有语法错误不能通过编译D、03. 以下程序段的输出结果是 Amain() char ch1, ch2; ch1 = A + 5 - 3; ch2 = A + 5 - 3; printf(“%d,%cn”, ch1
2、,ch2); A、67, CB、B,CC、不确定的值D、C,D4. 以下程序段的输出结果为(B)。 char c=abc; int i=0; do ;while(ci+!=0);printf(%d,i-1);A、abcB、3C、abD、25. 相同结构体类型的变量之间,可以(C)。A、比较大小B、地址相同C、赋值D、相加6. C语言源程序文件经过C编译程序编译连接之后生成一个后缀为(B)的可执行文件A、.objB、.exeC、.cD、.bas7. 以下程序的输出结果是 Cmain() char s = “ABCD”, *p;for(p = s; p b!=c和a(b!=c)的执行顺序是一样的B
3、、a&bc的结果为假C、a|(b=c)执行后b的值为0D、!a!=(b!=c)表达式的值为110. 当调用函数时,实参是一个数组名,则向函数传送的是(B)。A、数组每个元素中的值B、数组的首地址C、数组的长度D、数组每一个元素的地址11. C语言中,switch后的括号内表达式的值可以是 CA、只能为整型和字符型B、只能为整型C、任何类型D、只能为整型,字符型,枚举型 12. 定义语句int *swap();指的是 DA、以上说法均不对B、swap是一个返回整型值的函数C、swap是一个指向函数的指针D、swaP是一个返回指向整型值指针的函数13. 若有定义int a=9;,则执行语句prin
4、tf(%dn,+a);后的输出结果是(C)。A、11B、9C、10D、1214. 以下数组定义中不正确的是(C)。A、int a23;B、int b3=0,1,2,3;C、int d3=1,2,1,2,3,1,2,3,4;D、int c100100=0;15. 下列程序段的输出结果为(C)。 int x=3,y=2; printf(%d,(x-=y,x*=y+8/5);A、5B、1C、3D、716. 下列四组选项中,均不是C语言关键字的选项是(C)。A、getc char printfB、include scanf caseC、define IF typeD、while go pow17. 若
5、用数组名作为函数的实参,传递给形参的是(C)。A、数组元素的个数B、数组第一个元素的值C、数组的首地址D、数组中全部元素的值18. 若变量a与i已正确定义,且i已正确赋值,合法的语句是(B)。A、a=a+=5;B、+i;C、a=1D、a=int(i);19. 指针变量p进行自加运算(即 执行p+;)后,地址偏移值为2,则其数据类型为(A)。A、intB、doubleC、floatD、char20. 下面标识符中,不合法的用户标识符为 AA、m#nB、x_22C、DoD、CHAR21. 下列数组说明中,正确的是(B)。A、int array3;B、int array4;C、int array5;
6、D、int array;22. 判断两个字符串是否相等,正确的表达方式是(C)A、while(s1=s2)B、while(s1= =s2)C、while(strcmp(s1,s2)=0)D、while(strcmp(s1,s2)=0)23. 利用 fseek 函数可以实现的操作是(D)。A、改变文件的位置指针B、文件的随机读写C、文件的顺序读写D、以上答案均正确24. 下列关于单目运算符+、-的叙述中正确的是(A)A、它们的运算对象可以是char型变量和int型变量B、它们的运算对象可以是任何变量和常量C、它们的运算对象可以是int型变量,但不能是char型变量D、它们的运算对象可以是char
7、型变量,但不能是int型变量25. 设有 int x=11; 则表达式 (x+ * 1/3) 的值是(C)。A、12B、11C、3D、426. 下列变量定义中合法的是(A)。A、short _a=1-.1e-1;B、long do=0xfdaL;C、double b=1+5e2.5;D、float 2_and=1-e-3;27. 下列语句的结果是(B)。main() int j; j=3;printf(%d,+j); printf(%d,j+);A、3,4B、4,4C、4,3D、3,328. 系统的标准输入文件是指(B)。A、显示器B、键盘C、硬盘D、软盘29. 设有 int x=11; 则表
8、达式 (x+ * 1/3) 的值是(A)。A、3B、4C、12D、1130. 以下程序的输出结果是 Cvoid fun( int *s) static int j = 0;do sj += sj+1;while(+j 2); main() int k, a10 = 1, 2, 3, 4, 5;for( k = 1; k 3; k+)fun(a);for( k = 0; k 5; k+) printf(%d, ak); A、34756B、23445 C、35745D、12345判断1. 静态存储变量不随其所在函数的调用结束而被释放,其值会保留作为下一次调用的初值.T2.若有说明int c;则wh
9、ile(c=getchar();是正确的C语句。T3. 设有数组定义: char array =hello; 则数组 array所占的空间为5. F4. 经过下述赋值int x=3;double y;y=(double)x;后,则x变量的数据类型为int。T5. char *p=girl;的含义是定义字符型指针变量p,p的值是字符串girl。F6. integer是合法的关键字。F7. 共同体变量所占的内存长度等于最长的成员的长度。T8. 数组在内存中占一连续的存储区,数组名代表数组的首地址.T9. 若有定义:int j;则表达式(j=3,j+,j=5,j+5)执行后,j的值为10。F10.
10、+(i+1);是非法的赋值语句。T程序设计/*-【程序设计】1-功能:求一个四位数的各位数字的立方和。-*/#include void TestFunc(); int fun(int n) /*Begin*/ int d,s=0; while (n0) d=n%10; s+=d*d*d; n/=10; return s; /* End */ main() int k; k=fun(1234); printf(k=%dn,k); TestFunc();void TestFunc() FILE *IN,*OUT; int iIN,iOUT,i; IN=fopen(in.dat,r); if(IN=
11、NULL) printf(Please Verify The Currernt Dir.it May Be Changed); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Please Verify The Current Dir. it May Be Changed); for(i=0;i5;i+) fscanf(IN,%d,&iIN); iOUT=fun(iIN); fprintf(OUT,%dn,iOUT); fclose(IN); fclose(OUT);/*-【程序设计】-功能:将tt数组中的小写字母都改为对应的大写字母,其它字符删除。例如:a
12、4 bdsk88*,结果:ABDSK -*/void TestFunc(); #include #include void fun(char tt) /*Begin*/ int i,j=0; for(i=0;tti;i+) if(a=tti)&(tti=z) ttj+=tti-32; ttj=0; /* End */main() char tt81; printf(nPlease enter a string:); gets(tt); fun(tt); printf(nThe result string is:n%s,tt); TestFunc();void TestFunc() FILE *
13、IN,*OUT; char s100; IN=fopen(in.dat,r); if(IN=NULL) printf(Read FILE Error); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Write FILE Error); fgets(s,100,IN); fun(s); fprintf(OUT,%s,s); fclose(IN); fclose(OUT);程序改错/*- 【程序改错】-功能:用下面的和式求圆周率的近似值。直到最后一项的绝对值 小于等于0.0001。 1 1 1 - = 1 - - + - - - + . 4 3 5 7-*/
14、#include /*ERROR*/#include fun() int i=1; /*ERROR*/ int s=0,t=1,p=1; /*ERROR*/ while(fabs(t)=1e-4) s=s+t; p=-p; i=i+2; t=p/i; /*ERROR*/ printf(pi=%dn,s*4);main() fun();【改错1】 错误【学生答案】#include 【参考答案】#include math.h#include =【改错2】 错误【学生答案】int s=0,t=1,p=1;【参考答案】float s=0,t=1,p=1;float s=0,p=1,t=1;float
15、p=1,s=0,t=1;float p=1,t=1,s=0;float t=1,p=1,s=0;float t=1,s=0,p=1;=【改错3】 错误【学生答案】while(fabs(t)1e-4)while(0.0001fabs(t)while(1e-40.0001)=【改错4】 错误【学生答案】printf(pi=%dn,s*4);【参考答案】printf(pi=%fn,s*4);printf(pi=%fn,4*s);/*- 【程序改错】2-功能:以下程序能求出1*1+2*2+.+n*n1000) +n; s+=n*n; /*ERROR*/ printf(n=%dn,&n-1); 【改错1
16、】 错误【学生答案】s=n=0;【参考答案】s=n=0;=【改错2】 错误【学生答案】while(s1000)【参考答案】while(s=1000)=【改错3】 错误【学生答案】printf(n=%dn,&n-1);【参考答案】printf(n=%dn,n-1);/*-【程序填空】-功能: 统计字符s在字符串str中出现的次数。例如:若字符串为aaas lkaaas,则应输出2。-*/#include /*FILL*/int fun (char t,_) int i,num=0; for(i=0; stri; i+) /*FILL*/ if(_) num+; return num;main()
17、 char str80,s; printf(input a string:) ; gets(str); printf(输入要查找的字符s:); /*FILL*/ s=_; printf(%dn,fun(s,str); 【空1】 错误【学生答案】int fun (char t,_)【参考答案】char strchar *str/*-【程序填空】-功能:从键盘上输入两个复数的实部与虚部,求出并输出它们的 和、差、积、商。-*/#includevoid main() float a,b,c,d,e,f; printf(输入第一个复数的实部与虚部:); scanf(%f, %f,&a,&b); pri
18、ntf(输入第二个复数的实部与虚部:); scanf(%f, %f,&c,&d); /*FILL*/ _; f=b+d; printf(相加后复数:实部:%f,虚部:%fn,e,f); e=a*c-b*d; /*FILL*/ _; printf(相乘后复数:实部:%f,虚部:%fn,e,f); e=(a*c+b*d)/(c*c+d*d); /*FILL*/ _; printf(相除后复数:实部:%f,虚部:%fn,e,f);【空1】 错误【学生答案】_;【参考答案】e=a+ce=c+a=【空2】 错误【学生答案】_;【参考答案】f=a*d+b*cf=a*d+b*cf=a*d+b*c=【空3】 错误【学生答案】_;【参考答案】f=(b*c-a*d)/(c*c+d*d)f=(b*c-a*d)/(c*c+d*d)f=(b*c-a*d)/(c*c+d*d)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1