《C程序设计》模拟题1及答案

  • 格式:doc
  • 大小:135.00 KB
  • 文档页数:14

一、选择题(每题1分,共20分)1.以下叙述正确的是()。

A) C语言本身没有输入输出语句B) C程序每行中只能写一条语句C) 在对C程序进行编译的过程中,可发现注释中的拼写错误D) 在C程序中,main函数必须位于程序的最前面2.下列标识符中不符合C语法规则的是()。

A) a1 B) 1a C) _a1 D) a_13.若有int a=0,b=0; 则,执行语句“a&&(++b);”后,b的结果是()。

A) 0 B) 1 C) 2 D) 34. 以下for循环的执行次数是()。

for (x=0,y=0;(y=123)&&(x<4);x++);A)是无限循环 B)循环次数不定 C)执行4次 D)执行3次5. 以下程序段()。

x=-1;do{(x=x*x;}while(!x);A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误6.设m=5, n=4, 则,执行语句“m=m%n;”后,m的值为()。

A) 0 B) 1 C) 2 D) 37.C语言中,while 和do-while循环的主要区别是()。

A) while循环控制条件比do-while循环控制条件严格B) do-while循环体至少无条件执行一次C) do-while允许从外部转到循环体内12D) do-while 循环体不能是复合语句8. 若用数组名作为函数调用的实参,则传递给形参的是( )。

A) 数组中全部元素的值 B) 数组的第一个元素的值C) 数组的首地址 D) 数组元素的个数9. 若有字符数组a[80]和b[80],则正确的输出形式是( )。

A) puts(a,b); B)printf("%s,%s" ,a[ ],b[ ]);C) putchar(a,b); D)puts(a); puts(b);10. 若有定义:int a[][3]={1,2,3,4,5,6,7};,则数组a 第一维的大小是( B )。

A) 2 B) 3 C) 4 D)无确定值11. 下面程序段的运行结果是( )。

char a[]="language",*p;p=a;while(*p!=‘u ’) { printf("%c",*p-32);p++;}A) LANGUAGE B) language C) LANG D) langUAGE12.以下程序调用scanf 函数为变量x 输入数据的方法是错误的,其错误原因是( )。

void main(){float *p,x;p=&x;scanf("%f",*p);}在最后一条语句中,A) *p 表示的是变量a 的值,而不是变量a 的地址B) *p 表示的是指针变量p 的地址C) *p 表示的是指针变量p 的值D) *p 只能用来说明p 是一个指针变量13.若有定义:int a[10];,则对数组元素的正确引用是( )。

A) a[10] B) a[3.5] C) a(5) D)a[10-10]14.若有定义:char a[]="book", b[]={'b', 'o', 'o', 'k'};则以下叙述正确的是()。

A) 数组a和b的长度相同 B) a数组长度小于b数组长度C) a数组长度大于b数组长度 D) 上述说法都不对15. 下面不正确的字符串常量是()。

A) "\’12" B) "0" C) 'abc’ D) " "16.若有以下定义和语句,则输出结果是( )。

char c1='b',c2='e';printf("%d,%c\n",c2-c1,c2-'a'+'A');A) 2,M B) 3,EC) 2,E D) 输出项与对应的格式控制不一致,输出结果不确定17.定义一个结构体变量时,系统分配给它的存储空间是( )。

A) 该结构体中占用最大存储空间的成员所需存储空间B) 该结构体中所有成员所需存储空间的总和C) 该结构体中第一个成员所需存储空间D) 该结构体中最后一个成员所需存储空间18.以下程序段中与语句n=a>b?1:0;功能等价的是()。

A) if(a>b) n=1; B) if(a>b) n=1;else n=0;C) if(a>b) a=1;else b=0; D) 语法错误19.若有定义:int a[10],*p=a;并在以后语句中未改变p的值,则不能表示a[1]元素地址的表达式是( )。

A) a++ B) p++ C)a+1 D)p+120.以下程序的输出结果是( )。

void main(){int i,a[3][3]={1,2,3,4,5,6,7,8,9},*p=&a[1][0];for(i=0;i<3;i++)printf("%d ",p[i]);}34A) 1 2 3 B) 4 5 6 C) 7 8 9 D) 1 5 9二、读程序,写出运行结果(每小题5分,共50分)1.程序的执行结果是:#include<stdio.h>int main(){int n;for(n=1; n<=10; n++){if (n%2) continue;if(n%6== 0) break;printf("%d ",n); }return 0;}2. 程序的执行结果是:int main(){ int i,j, m, n;i=1; j=2;m=i++; n=--j;printf("%d,%d,%d,%d",i,j,m,n);return 0;}3.程序的执行结果是:#define N 15void fun(int b[],int n,int m){int i,j;for(i=m;i>=n;i--)b[i+1]=b[i];}int main(){ int i,a[N]={1,2,3,4,5,6,7,8,9,10};fun(a,1,9);for(i=0;i<5;i++)printf("%d ",a[i]);return 0;}4.程序的执行结果是:struct stud{ char name[10];int num;float score;}s[]={{"Li",11,90.0},{"Wang",12,87.5}};int main ( ){printf("name=%s,num=%d,score=%f",s[1].name,s[1].num,s[1].score);return 0;}5. 程序运行后输出的结果是:void f1(int *p){ int t;t=*p; *p=*(p+1); *(p+1)=t;}void f2(int x,int y){ int t;t=x; x=y; y=t;}int main( ){ int a[2]={1,2},b[2]={1,2};f1(a); f2(b[0],b[1]);printf("%d %d %d %d\n",a[0],a[1],b[0],b[1]);return 0;}6.程序运行后输出的结果是:int f(char *s,char ch){int k=0;char *p;for(p=s;*p!='\0';p++)if(*p==ch) k++;return k;}int main(){char s[]="Hello wold!",c;int n;c='l';n=f(s,c);printf("n=%d\n",n);return 0;56} 7.程序运行后输出的结果是: #include <stdio.h> int main() {int i; char s1[10]="ABC",s2[ ]="12345"; for(i=0;s2[i]!='\0';i++) s1[i]=s2[i]; s1[i]='\0'; puts(s1); return 0; } 8. 程序运行后输出的结果是: #include <stdio.h> #define N 5 void f(int a[],int n) {int i,j,k,t; for(i=0;i<n-1;i++) {k=i; for(j=i+1;j<n;j++) if(a[k]>a[j]) k=j; if(k!=i) {t=a[i];a[i]=a[k];a[k]=t;} } } int main() {int b[N]={9,0,1,5,6},i; f(b,N); for(i=0;i<N;i++) printf("%d ",b[i]); printf("\n"); return 0; } 9. 程序运行后输出的结果是: #include <stdio.h> #include <string.h> fun(char *w, int n){ char t, *s1,*s2;s1=w; s2=w+n-1;while(s1!=s2){ t=*s1; *s1++=*s2; *s2--=t; }}int main(){ char *p;p="20151";fun(p,strlen(p));puts(p);return 0;}10. 程序运行后输出的结果是:#include <stdio.h>void fun(int a[][3],int m){int i,j;for(i=0;i<m;i++)for(j=0;j<i+1;j++)a[i][j]=0;}int main(){int i,j,a[3][3]={1,2,3,4,5,6,7,8,9};fun(a,3);for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%3d",a[i][j]);printf("\n"); }return 0;}三.编程题(每题10分,共30分)1.输入m个数,求其中最大数、最小数和平均值。