C语言程序设计试卷3 - 图文 下载本文

************************************************ ************************************************ 班级: ************************************************ ************************************ 学号: ************************************************ 姓名: ************************************************************************************************ C)数组x长度小于数组y长度 D)数组x等价于数组 y 考试方式 闭卷 制卷分数 8、程序片段输出结果为( ) m=37;n=13; 题 号 一 二 三 四 五 总分 while(m!=n) 得 分 { while(m>n) 登分人 核分人 m=m-n; while(n>m) 得分 阅卷人 一、选择题 ( 每小题2分,共40分) n-=m; } printf(\ A. m=13 B. m=11 C. m=1 D. m=2 1、C语言程序由什么组成( ) 9、在与switch语句配套的case语句中所使用的正确的表达式为( ) A. 子程序 B. 主程序和子程序 C. 函数 D. 过程 A、只能是常量 B、可以是变量或常量 2、设有定义:int a[10],*p=a; float b=;int c=1;以下不合法的运算是( ) C、只能是常量或常量表达式D、无论是常量还是变量,只要在执行时已有确定的值就行 A) p++; B) a--; C) b++; D) c--; 10、下列程序执行后,a的值为( ) 3、判断char型 变量c1是否为大写字母的正确表达式( ) main() A、 ’A’<=c1<=’Z’ B、 (c1>=’A’)&(c1<=’Z’) { int a,b; C、 (c1>=’A’)&&(c1<=’Z’) D、 (‘a<=c1’)AND(‘Z’>=c1) for(a=1,b=1;a<=100;a++) 4、这段程序中的常量有: { if(b>=20) break; #define PI if(b%3==1) void main() { b+=3; continue;} { b-=5; int sum; } sum = 10 + 15; } printf(\ A、7 B、8 C、9 D、10 printf(\ 11、下列程序的运行结果为( ) } main() 这段程序中常量有:( )(多选) { char a[7]={“65ab21”}; int i,s=0; A. 10 B. sum C. 15 D. 25 E. main F. PI for(i=0;a[i]>=’0’&&a[i]<=’9’;i++) 5、在C语言中逻辑“真”等价于以下( ) s=10*s+a[i]-‘0’; A、整数1 B、大于0的数 C、小于0的数 D、不等于0的数 printf(“%d”,s); 6、在C语言的if语句中,用作判断的表达式为___。 } A. 关系表达式 B. 逻辑表达式 C. 算术表达式 D. 任意表达式 A、12AB56 B、6521 C、65 D、62 7、若有以下语句,则正确的描述是( ) 12、下列程序执行后输出的结果为( ) char x[ ]={”12345”}; #include<> char y[]={‘1’,’2’,’3’,’4’,’5’}; abc() A)数组x与数组y的长度相同 B)数组x长度大于数组y长度 { stdtic int x=0; ++x; printf(“%d”,x);} ************************************************ ************************************************ 班级: ************************************************ ************************************ 学号: ************************************************ 姓名: ************************************************************************************************main() point(pt); { abc(); abc();abc();} printf(“%c\\n”,*pt); A、000 B、111 C、1,2,3 D、123 } 13、下列程序的输出结果为( ) point(char *p) main() {p+=3;} { int a[5]={2,4,5,6,10},*p,**k; A、a B、c C、s D、f p=a; k=&p; printf(“%d”,*(P++)); printf(“%d\\n”,**k); } 18、以下程序的输出结果为( ) A、44 B、22 C、24 D、46 #include <> 14、该程序的输出结果是( ) main() for(i=0;i<5;i++) { { int i,j,x=0; for(j=1;j<10;j++) for(i=0;i<2;i++) if(j==5) { break; x++; if(i<2) for(j=0;j<=3;j++) continue; { if(i>2) if(j%2) break; continue; printf(\ x++; } } printf(\ } 输出结果为: printf(\ A. 10,3 B. 5,2 C. 5,3 D. 10,2 } 15、以下程序的输出结果为( ) A. x=4 B. x=8 C. x=6 D. x=12 #include<> 19、若要定义b为10*10的二维数组,正确的定义语句为( ) main() A、float b(10,10) B、float b[10,10] { int a=010,b=10; printf(“%d,%d\\n”,a++,--b); } C、float [10][10] D、float b[10][10] A、10,10 B、8,10 C、10,9 D、8,9 20在下列语句中,不正确的是( ) 16、下面这个程序段的输出是什么 A、 c=2*max(a,b) B、m=max(a,max(b,c)) int a,b,c; C、printf(“%d”,max(a,b)) D、int max(int x,int max(int y,int z)) a=7;b=8;c=9; if(a>b) a=b;b=c;c=a; 得分 阅卷人 二、填空题 (每题2分,共20分) printf(\ A. a=7 b=8 c=7 B. a=7 b=9 c=7 C. a=8 b=9 c=7 D. a=8 b=9 c=8 17、point(char *pt); main() 1、 若已知a=10,b=15,c=1。则表达式a*b&&c的运算结果为_________。 { char b[4]={‘a’,’c’,’s’,’f’},*pt=b; 2、 有以下函数调用语句,请问函数fun1有几个参数______________。 ************************************************ ************************************************ 班级: ************************************************ ************************************ 学号: ************************************************ 姓名: ************************************************************************************************ fun1(x,(y,z),10,fun2((x-1,y-1))) main() 3、在C语言中,一个函数通常由两部分组成,它们是____________和____________。 {int x=100,y=200,z=300; 4、程序的三种基本结构为____________、_____________、___________。 f1(x,y,z); 5、有以下语句:int a,b;scan(“a=%d ,b=%d”,&a,&b);为使变量a,b的值分别为12 , printf(“%d,%d,%d\\n”,z,y,x); 34 } 则输入数据的形式为_______________________________________。 2. 写出运行结果 6、若有以下定义和语句: main() int a[5]={9,8,7,6,5};*p; p=&a[3]; { int a=3,b=2,c=1; 则*--p的值是_________ c- =++b; 7、#include<> b* =a+c; main() { int b=5,c=12; 结果: {char a[10]=”123456789”,*p; p=&a[4]; puts(p); } c/=b*2; 以上程序的输出结果为____________。 a- =c; 8、下面程序的运行结果是____________。 printf(“%d,%d,%d”,a,b,c); main() a+= --c; { struct cmplx } {int x; inty;}cnum[2]={1,3,2,7}; printf(“,%d,%d,%d”,a,b,c); printf(“%d\\n”,cnum[0].y/cnum.[0].x*cnum[1].x); } } 9、C语言的数组名是一个_________常量,不能对它进行加减和赋值等运算。 3. 写出运行结果 10、下面对结构体成员”computer”的赋值方式正确的是__________________________#include<> 结果: (computer成绩为84分)。 main() struct student { int a[20],*p[5],i; { int num; for(i=0;i<19;++i) a[i]=i; char name[8]; for(i=0;i<5;++i) p[i]=&a[i*4]; struct for(i=0;i<5;++i) printf(“%d”,*(p[i]+1)); {folat math; } folat engl; float computer; }mark ;} std ; 得分 阅卷人 四、程序填空题 (每小题6分,共12分) 得分 阅卷人 三、程序分析题 (每小题4分,共12分) 1、下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中,请填空。 main() {int a[2][3]={{1,2,3},{4,5,6}}; 以下程序的运行结果 int b[3][2],i,j; 1. void f1(int x,int y,int z) printf(“array a:\\n”); {x=111;y=222;z=333;} 结果: for (i=0;i<=1;i++) { for (j=0;_________;j++) {printf(“]”,a[i][j]); ______;} printf(“\\n”); } printf(“array b:\\n”); for(i=0;__________ ;i++) { for (j=0;j<=1;j++) printf(“]”,b[i][j]); printf(“\\n”); } } 2、 利用指针法将两个数按从大到小的顺序输出。 main() {int a,b,______________; printf(“input a,b:”); scanf(“%d%d”,&a,&b); _________’ p2=&b; if(a