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。 ①  
相关推荐: