C语言期末试卷6
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C程序设计期末考试试卷F-A
(本试卷共9 页,命题日期:200 年月日)
一、选择填空(每空2分)
1.设int a,b;则表达式a=2,b=++a*2的值为【1】。
A)6 B) 4 C) 8 D) 2
2.下面程序的运行结果是【2】
main()
{int a=-10,b=-3;
printf(“%d\n”,(a=a-b,a+b));
}
A)-10 B) –4 C) -7 D) -13
3.以下能正确定义变量a, b和c并为它们赋值的语句是【3】
A) int a=5; b=5; c=5; B) int a,b,c=5;
C) a=5,b=5,c=5; D) int a=5, b=5, c=5;
4.设a为整型变量,不能正确表达数学关系 10 A) 1010 && a<15 D)!(a<=10) && !(a>=15) 5.若已定义: int x=5.5,y; 则表达式y=2.75+x/2的值是【5】。 A) 5.5 B) 5 C) 4 D) 4.0 6.定义int a;后,语句printf("%d\n",(a=3*5,a*4,a+5));的输出是【6】。 A) 65 B) 20 C) 15 D) 10 7.若给定条件表达式(S)? (a++) : (a--), 则与表达式S等价的是【7】。 A) 和(S==0)等价 B) 和(S==1)等价 C) 和(S!=0)等价 D) 和(S!=1)等价 8.若定义int d, c=6;则执行下面的语句后,d的值为【8】。 switch(c) { case 0:d=0;break; case 1: case 2:d=1;break; case 3: case 4:d=2;break; default:d=3; } A) 0 B) 1 C) 2 D) 3 9.若执行下面程序时,从键盘输入"3,4",则输出是【9】。 main() { int a,b,s; scanf("%d,%d",&a,&b); s=a; if (a s=s*s; printf("%d\n",s); } A) 4 B) 16 C) 18 D) 20 10.下列程序段执行后,s的值为【10】。 int k,s=0; for(k=1;k<=10;++k); s=s+k; A) 1+2+3+...+10 B) 0 C) 11 D) 10 11.若i,j已定义为int 类型,则以下程序段中内循环体的总的执行次数是【11】。 for(i=5;i;i--) for(j=0;j<4;j++) { ...... } A) 20 B) 24 C) 25 D) 30 12.设 int a=1,b=2,c=3,d=4; 则表达式(a!=b)?(--c):d++的值为【12】。 A) 5 B) 4 C) 2 D) 3 13.运行以下程序段的输出结果是【13】。 int a=5; if(a++>5) printf("%d\n",a); else printf("%d\n",a--); A) 4 B) 6 C) 5 D) 有语法错误14.定义以下结构体数组 struct date { int year; int month; int day; }; struct s { struct date birth; char name[20]; } x[4]={{1977, 8, 7, "hangzhou"}, {1975, 9, 5, "Tianjin"}}; 语句printf("%s,%d,%d,%d", x[0].name,x[1].birth.year, x[1].birth.month, x[1].birth.day); 的输出结果为【13】。 A) hangzhou,1977,8,7 B) hangzhou,1975,9,5 C) Tianjin,1977,8,7 D) Tianjin,1975,9,5 15.下列各程序段中,可以实现1×2×3×4×5×6×7×8×9×10的是【15】。 A) int k=1,M=0; for (;k<11;++k) M*=k; B) int k=1,M=1; while (k<10); M*=k,k++; C) int k=1,M=1; for (;;++k); M*=k; D) int k=1,M=1; while (k<=10) {M*=k;k++;} 16.下面程序段,不是死循环的是【16】。 A) int i=100; while(2) {i=i%100+1; if(i>100) break; } B) for( ; ; ); C) int k=0; do{++k;} while(k>=0); D) int s=45; while(s); s--; 17. 为表示关系y在闭区间[x,z]内,应使用的C语言表达式是(【17】)。 A) (x<=y)&&(y<=z) B)(x<=y)AND(y<=z) C) x<=y<=z D)(x<=y)&(y<=z) 18. 下面的程序运行后输出的结果是【18】。 main() {int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23},(*p)[4]; p=a; printf("%d",*(*(p+2)+3)); } A) 9 B) 15 C) 21 D) 23 19.下列一维数组说明中,正确的是(【19】)。 A) #define SIZE 8 float b[SIZE]; B) int n; scanf("%d", &n); float b[n]; C) int m=7, a[m];