浙江理工大学c语言期末考试模拟试卷1
- 格式:pdf
- 大小:125.08 KB
- 文档页数:7
三、程序阅读题(阅读下列程序,写出运行结果,每小题 2 分,共 20 分) 1、 【程序】 #include <stdio.h> void main( ) { int x=31,y=2,s=0; do { s-=x*y; x+=2; y-=3;printf("%d %d %d\n",x,y,s);} while( x%3==0); } (1)程序运行时,输出结果的第 1 行是______。 [A] 31 2 -62 [B] 31 2 0 [C] 31 2 -62 [D] 33 –1 -62 (2)程序运行时,输出结果的第 2 行是______。 [A] 33 -1 62 [B] Press any key to continue... [C] 35 -4 -29 [D] 无结果 2、 【程序】 #include<stdio.h> void main() { int i,j,n;char ch='A'; scanf("%d",&n); if(n<11){ for(i=1;i<=n;i++){ for(j=1;j<=n-i+1;j++){ printf("%2c",ch); ch++;} printf("\n"); } } else printf("n is too large!\n"); printf("\n"); } (3)程序运行时,输入 5,第一行输出 。 [A] A A A A A [B] A B C D E [C] A B C D [D] A (4)程序运行时,输入 5,第二行输出 。 [A] B C [B] A A A A [C] A B [D] F G H I (5)程序运行时,输入 15,第一行输出 。
共 5 页—第 2页
( 6) ( 7) ( 8) ( 9) (10)
[C] int i; [D] int v; [A] sqrt(n)+1 [B] i+1 [C] prime(n) [D] sqrt(n) [A] "%d is a prime!\n", n [B] "%d is not a prime! \n, n" [C] "%d is a prime! \n, n" [D] "%d is not a prime! \n", n [A] "%d is a prime!\n", n [B] "%d is not a prime! \n, n" [C] "%d is a prime! \n, n" [D] "%d is not a prime! \n", n [A] k=sqrt(p); [B] k=sqrt(i); [C] i=sqrt(p); [D] p=sqrt(k); [A] if(p%i==0) v=0; [B] if(p%i=0) v=0; [C] if(p%i==0) v==0;break; [D] if(p%i==0) v=0;break;
《C 程序设计》模拟试卷参考答案
一、单选题(本题共 20 分,每小题 2 分) 题号 答案 1 C 2 C 3 B 4 A 5 C 6 B 7 C 8 C 9 D 10 D
二、程序填空题(本题共 30 分,每小题 2 分) 题号 答案 题号 答案 (1) C A (2) D C (3) B D ( 4) A B (5) D B (6) C (7) A ( 8) B (9) A (10) D
共 5 页—第 1页
二、程序填空题(阅读以下程序说明和相应程序,将空格补充完整。每小题 2 分,共 30 分) 1、 【程序说明】输出 100 以内(不含 100)能被 3 整除且个位数为 6 的所有整数。 【运行示例】 6 36 66 96 【程序】 #include<stdio.h> void main() { int i,j; for(i=0; (1) ;i++){ j= (2) ; if( (3) )continue; (4) ; } } 【供选择的答案】 ( 1) [A] i<100 [B] i<=10 [C] i<10 [D] i<=100 ( 2) [A] i/6 [B] i*6 [C] i%6 [D] i*10+6 ( 3) [A] j%6!=0 [B] j%3!=0 [C] i%3==0 [D] i%3!=0 ( 4) [A] printf("%d ",j) [B] printf("\n") [C] printf("%d ",i) [D] printf("%d\n",j) 2、 【程序说明】 判别并显示输入的整数是否为质数。 【运行示例】 17 17 is a prime! 【程序】 #include <stdio.h> void main() { int n;int prime(int); (5) scanf("%d",&n); v= (6) ; if (v==1) then printf( ( 7) ) else printf( (8) ) } int prime(int p) { int k,i,v=1; (9) ; for(i=2;i<=k;i++) { (10) } return v; } 【供选择的答案】 ( 5) [A] int prime; [B] int k;
《C 程序设计》期末模拟试卷
一、单选题(每小题 2 分,共 20 分) 1、以下叙述正确的是( ) [A] 在 C 程序中,main 函数必须位于程序的最前面。 [B] C 程序的每一行只能写一条语句。 [C] C 语言本身没有输入和输出语句。 [D] 在对一个 C 程序进行编译过程中,可发现注释中的错误。 2、能用作变量名字的标识符是( ) 。 [A] union [B] double [C] a123_cd [D] ab-1 3、break 语句( ) 。 [A] 只能出现在 if 语句中 [B] 可用在循环体和 switch 语句中 [C] 只能出现在循环体中 [D] 可用在函数中的任何语句 4、执行下面的程序段后,变量 k 中的值为 ( )。 int k=3, s[2]; s[0]=k; k=s[1]*10; [A] 不定值 [B] 33 [C] 30 [D]10 5、设有数组定义: char array[]="China"; 则数组 array 所占的空间为( ) 个字节。 [A] 4 [B] 5 [C] 6 [D] 7 6、下列程序执行后的输出结果是 ( ) #define MA(x) x*(x-1) #include<stdio.h> void main() { int a=1; printf("%d \n",MA(1+a)); } [A] 3 [B] 2 [C]1 [D] 0 7、已知:int a,*p=&a; 则为了得到变量 a 的值,下列错误的表达式为________。 [A] p[0] [B] *p [C] &*a [D] *&a 8、数组名作为实参传递给形参时,数组名被处理为( ) 。 [A] 该数组的长度 [B] 该数组的元素个数 [C] 该数组的首地址 [D] 该数组中各元素的值 9、执行循环语句: for(x=y=0;y!=250 && x<4;x++)y+=50; 其循环体执行的次数为: [A] 5 [B]2 [C]3 [D] 4 10、设有 int x,y; 以下语句判断 x 和 y 是否相等,正确的说法是该语句________。 if (x=y) printf(" x is equal to y."); [A] 语法错 [B] 能判断 x 和 y 是否相等 [C] 编译出错 [D] 不能判断 x 和 y 是否相等
3、 【程序说明】以下程序中函数 huiwen 的功能是检查一个字符串是否是回文,当字符串是 回文时,函数返回字符串:yes!,否则函数返回字符串:no!,并在主函数中输出。所谓 回文即正向与反向的拼写都一样,例如:adgda。 【运行示例】 Input: adgda yes! 【程序】 #include <stdio.h> char *huiwen(char *str) { char *p1,*p2; int i,t=0; p1=str;p2= (10) ; for(i=0;i<= (12) ;i++) if( (13) ){t=1;break;} if( (14) ) return("yes!"); else return("no!"); } void main() { char str[50]; printf("Input:"); scanf("%s",str); printf("%s\n", (15) ); } (11) [A] str+strlen(str)-1 [B] str [C] str+strlen(str) [D] *str (12) [A] strlen(str) [B] strlen(str)/2+1 [C] strlen(str)/2 [D] strlen(str)/2-1 (13) [A] *p1==*p2 [B] p1++!=p2— [C] *p1!=*p2 [D] *p1++!=*p2-(14) [A] t!=0 [B] t==0 [C] i>strlen(str) [D] i=strlen(str) (15) [A] *str [B] huiwen(str) [C] *huiwen(str) [D] str