for(i=0;i if(score[i] { float ave,score[10]; input(score,10); ave=average(score,10); printf(“average=%6.2f\\n”,ave); print(score,ave,10); } 第六套试题 一、 选择题(15*2=30分) 1、下列对C语言的特点说法不正确的是_____。 A.c语言是结构化设计语言 B.c语言是机器语言 C.c语言生成目标代码质量高,程序执行效率高 D.c语言简洁、紧凑、使用方便、灵活 2、一个C语言程序的执行是从_____。 A.第一个函数开始,直到最后一个函数结束 B. main函数开始,直到main函数结束 C.第一个函数开始,直到最后一个语句结束 D.main函数开始,直到最后一个函数结束 3、下列标识符错误的是_____。 A.Hot_dog B.cat1 C.2dog D.S_exp 4、以下叙述正确的是_____。 A.do_while语句构成的循环不能用其它语句构成的循环来代替 B.do_while语句构成的循环只能用break语句退出 C.用do_while语句构成循环时,当while后的表达式成立时结束循环 D.用do_while语句构成循环时,当while后的表达式不成立时结束循环 5、以下程序的输出结果是_____。 main( ) { int x=10,y=3;printf(“%d\\n”,y=x/y);} A.0 B.1 C.3 D.不确定的值 6、以下程序段的输出结果是_____。 int k,j,s; for(k=2;k<6;k++,k++) { s=1; for(j=k;j<6;j++) s+=j; } printf(“%d\\n”,s); A.9 B.1 C.11 D.6 7、如果有下列说明int p,a=3;执行了p=&a;则与&*p表达的意思一致的是_____。 A.&a B.a C.&p D.*p 8、为表示关系x≥y≥z,应使用的C语言表达式是_____。 A.(x>=y)&&(y>=z) B.(x>=y)AND(y>=z) C.(x>=y>=z) D.(x>=y)&(y>=z) 9、设有语句char a=‘\\72’; 则变量a_____。 A.包含1个字符 B.包含2个字符 C.包含3个字符 D.说明不合法 10、以下对二维数组a进行不正确初始化的是_____。 A.int a[ ][3]={3,2,1,1,2,3}; B.int a[ ][3]={{3,2,1},{1,2,3}}; C.int a[2][3]={{3,2,1},{1,2,3}}; D.int a[ ][ ]={{3,2,1},{1,2,3}}; 11、对于如下的结构体定义: struct date { int year;int month;int day;}; struct worklist { char name[20]; char sex; struct date birthday; }person; 若对变量person的出生年份进行赋值,_____是正确的赋值语句。 A.year=1976;B.birthday.year=1976;C.person.birthday.year=1976; D.person.year=1976; 12、如果int *p,a[3]={1,2,3};执行p=a;那么运行printf(“%d”,*p++);输出结果是_____。 A.1 B.2 C.3 D.不确定 13、下面是有关对算法的说法,其中不正确的是_____。 A. 算法是程序的灵魂 B.算法是解决“做什么”和“怎么做”的问题 C.N-S流程图表示算法比传统流程图紧凑易画,尤其是它废除了流程线。 D.传统的流程图表示算法如:顺序、选择、循环三种结构,一般有多个入口,多个出口 14、如果int a[]={1,2,3,4,5};int p=a+3; 那么printf(“%d”,*p+3);输出结果是_____。 A.4 B.1 C.5 D.7 15、下列对全局变量和局部变量说法不正确的是_____。 A.全局变量可以为其他文件中的函数所共用 B.全局变量的有效范围为从定义变量的位置开始到本源文件结束 C.局部变量只有在本函数内才能使用它们 D.局部变量不能为其他文件中的函数所共用 二、 程序填空(5*5=25分) 1、 将下列空白行程序填写完整 1) 下列程序完成打印出以下图案的功能,请将程序中的一处补充完整。 Main() * * * * * * * * * * * * * * * * {int i,j,k; for(i=0;i<=3;i++) { for( ) printf(“ ”); for(k=0;k<=2*i;k++) printf(“*”); printf(“\\n”); } 2) 下列程序完成求一个字符串长度的功能,请将程序中的两处补充完整。 Main() { int len; char *str[20]; printf(“Input string:”); scanf(“%s”, ); len=length(str); printf(“The length of string is %d.”,len); } length(char *p) { int n=0; while(*p!=’\\0’); {n++; ; } return(n); } 2、 写出下列程序的运行结果 1) main() {int a=1;b=2;c=3; switch((a=b)= =c) {case 0:printf(“false”); case 1: printf(“true”); case 2: case 3:printf(“2,3”); } } 程序运行结果是: 2) main() { int n=0; char c; while((c=getchar())!=’2’) n++,printf(“0%c”,c); printf(“%d”,n); } 假如输入1992,那么输出结果是: 3) #include {int m,i,k; scanf(\k=sqrt(m); for(i=2;i<=k;i++); if(m%i= =0) break; if(i>k) printf(“YES”); else printf(“NO”); } 假如输入19,那么输出结果是: 三、 程序改错(3*5=15分) 说明:如果第4行有错,就写:第4行应改成*****;如果需要在第3行和第4行插入代码就写:在第3、4中间插入*****。 1、 求1!+2!+3!+4!+5! 1) #include 5) float s=0,t=1; 6) int n; 7) for(n=1;n<=5;n++) 8) t=t*n; 9) s=s+t; 10) printf(\11) } 此程序运行后,没有任何语法错误提示,输出结果:120.000000,显然错误。请对以上程序改动2行后能使程序正常运行并输出正确结果:153.000000。 ① ② 2、 交换两个数 1) main() 2) {int a,b; 3) int *p1,*p2; 4) scanf(\5) p1=&a; p2=&b; 6) if (a 8) printf(\9) } 10) swap(int *pa,int *pb) 11) {int p; 12) p=pa;pa=pb;pb=p; 13) } 此程序运行后,没有任何语法错误提示,如果输入3,4输出结果:3,4,显然错误。请对以上程序改动1行后能使程序正常运行并输出正确结果:4,3。 ①
相关推荐: