16.设有以下定义 int a=0;double b=1.25;char c=′A′; #defined2 则下面语句中错误的是 A)a++; B)b++; C)c++; D)d++;
A B C D
17.设有定义:float a=2,b=4,h=3;,以下C语言表达中与代数式12(a+b)h计算结果不相符的是 A)(a+b)*h/2 B)(1/2)*(a+b)*h C)(a+b)*h*1/2 D)h/2*(a+b)
A B C D
18.有以下程序 main() {int x=102,y=012;printf("%2d,%2d\n",x,y);} 执行后输出结果是 A)10,01 B)02,12 C)102,10 D)02,10
A B C D
19.以下4个选项中,不能看做一条语句的是 A){;} B)a=0,b=0,c=0; C)if(a>0); D)if(b==0)m=1;n=2;
A B C D
20.设有定义:int a,*pa=&a;,以下scanf语句中能正确为变量a读入数据的是 A)scanf("%d",pa); B)scanf("%d",a); C)scanf("%d",&pa); D)scanf("%d",*pa);
A B C D
21.以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是 A)if((a>b)&&(b>c))k=1; else k=0 B)if((a>b)=||(b>c))k=1; else k=0; C)if(a<=b)k=0; else if(b<=c)k=1; D)if(a>b)k=1; else if(b>c)k=1; else k=0;
A B C D
22.有以下程序 main() { char k;int i; for(i=1;i<3;i++) { scanf("%c",&k); switch(k) { case ′0′:printf("another\n"); case ′1′:printf("number\n"); } } } 程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是 A)another number B)another number another C)another number number D)number number
A B C D
23.下列程序的输出结果是 main() { int x=0,y=5,z=3; while(z-->0 && ++x<5)y=y-1; printf("%d,%d,%d\n",x,y,z);} A)3,2,0 B)3,2,-1 C)4,3,-1 D)5,-2,-5
A B C D
24.下列程序的输出结果是 main() { int i,s=0; for(i=1;i<10;i+=2)s+=i+1; printf("%d\n",s);} A)自然数1~9的累加和 B)自然数1~10的累加和 C)自然数1~9中奇数之和 D)自然数1~10中偶数之和
A B C D
25.下列程序的输出结果是 main() { int i,n=0; for(i=2;i<5;i++) { do { if(i%3)continue; n++; } while(!i); n++; } printf("n=%d\n",n); } A)n=5 B)n=2 C)n=3 D)n=4
A B C D
26.若程序中定义了以下函数 double myadd(double a,double b) { return (a+b); } 并将其放在调用语句之后,则在调用之前应该对函数进行说明,以下选项中错误的说明是 A)double myadd(double a,b); B)double myadd(double, double); C)double myadd(double b, double a); D)double myadd(double x, double y);
A B C D
27.下列程序的输出结果是 char fun(char x,char y) { if(xmain() { int a=′9′,b=′8′,c=′7′; printf("%c\n",fun(fun(a,b),fun(b,c)));} A)函数调用出错 B)8 C)9 D)7
A B C D
28.设有定义:int n=0,*p=&n,**q=&p;,则以下选项中,正确的赋值语句是 A)p=1; B)*q=2; C)q=p; D)*p=5;
A B C D
29.下列程序的输出结果是 void f(int v,int w) { int t; t=v;v=w;w=t;} main() { int x=1,y=3,z=2; if(x>y)f(x,y); else if(y>z)f(y,z); else f(x,z); printf("%d,%d,%d\n",x,y,z);} A)1,2,3 B)3,1,2 C)1,3,2 D)2,3,1
A B C D
30.下列程序段中b的值是 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=p[5]; A)5 B)6 C)8 D)9
A B C D
31.下列程序的输出结果是 main() { char a[]="abcdefg",b[10]="abcdefg"; printf("%d%d\n",sizeof(a),sizeof(b));} A)77 B)88 C)810 D)1010
A B C D
32.下列程序的输出结果是 void swap1(int c[]) { int t; t=c[0];c[0]=c[1];c[1]=t;} void swap2(int c0,int c1) { int t; t=c0;c0=c1;c1=t;} main() { int a[2]={3,5},b[2]={3,5}; swap1(a);swap2(b[0],b[1]); printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);} A)5 3 5 3 B)5 3 3 5 C)3 5 3 5 D)3 5 5 3
A B C D
33.下列程序的输出结果是 void sum(int*a) {a[0]=a[1];} main() { int aa[10]={1,2,3,4,5,6,7,8,9,10},i; for(i=2;i>=0;i--)sum(&aa[i]); printf("%d\n",aa[0]);} A)4 B)3 C)2 D)1
A B C D
34.下列程序的输出结果是 int f(int b[][4]) { int i,j,s=0; for(j=0;j<4;j++) { i=j; if(i>2)i=3-j; s+=b[i][j];} return s;} main() { int a[4][4]={{1,2,3,4},{0,2,4,6},{3,6,9,12},{3,2,1,0}}; printf("%d\n",f(a));} A)12 B)11 C)18 D)16
A B C D
35.有以下定义 #include char a[10],*b=a; 不能给a数组输入字符串的语句是 A)gets(a) B)gets(a[0]); C)gets(&a[0]); D)gets(b);
A B C D
二、填空题(每空2分,共计30分)
1.E-mail地址由用户名和域名两部分组成,这两部分的分隔符为 【1】 。
输入答案,中间不含空格:
2.计算机网络分为广域网和局域网,因特网属于 【2】 。
输入答案,中间不含空格:
3.从Windows环境进入MS-DOS方式后,返回Windows环境的DOS命令为 【3】 。
输入答案,中间不含空格:
4.在Windows环境下,只要在“开始”菜单中单击 【4】 选项,就可以查阅最近打开过的文档清单。
输入答案,中间不含空格:
5.计算机的运算速度可以用MIPS来描述,1MIPS是指每秒执行 【5】 条指令。
输入答案,中间不含空格:
6.已知字符A的ASCII码值为65,以下语句的输出结果是 【6】 。 charch=′B′;printf("%c%d\n",ch,ch);
输入答案,中间不含空格:
7.有以下语句段 int n1=10,n2=20;printf(" 【7】 ",n1,n2); 要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。 n1=10 n2=20
输入答案,中间不含空格:
8.下列程序的输出结果是 【8】 。 main() { int t=1,i=5; for(;i>=0;i--)t*=i; printf("%d\n",t);}
输入答案,中间不含空格:
9.下列程序的输出结果是 【9】 。 main() { int n=0, m=1, x=2; if(!n)x-=1; if(m)x-=2; if(x)x-=3; printf("%d\n",x);}
输入答案,中间不含空格:
10.下列程序运行时输入;12<回车>,执行后输出结果是 【10】 。 #include main() { char ch1, ch2;int n1,n2; ch1=getchar(); ch2=getchar(); n1=ch1-′0′; n2=n1*10+(ch2-′0′); printf("%d\n",n2);}
输入答案,中间不含空格:
11.下列程序的输出结果是 【11】 。 void f(int y,int *x) { y=y+*x;*x=*x+y;} main() { int x=2,y=4; f(y,&x); printf("%d%d\n",x,y);}
输入答案,中间不含空格:
12.函数fun的功能是计算Xn double fun(double x,int n) { int i;double y=1; for(i=1;i<=n;i++)y=y*x; return y;} 主函数中已正确定义m,a,b变量并赋值,并调用fun函数计算:m=a4+b4-(a+b)3。实现这一计算的函数调用语句为 【12】 。
输入答案,中间不含空格:
13.下面rotate函数的功能是:将n行n列的矩阵A转置为A',例如: 当A=1234 5678 9101112 13141516 则A'= 1 5 913 2 61014 3 71115 4 81216 请填空。 #define N 4 void rotate(int a[][N]) { int i,j,t; for(i=0;i for(j=0; 【13】 ;j++) {t=a[i][j]; 【14】 , a[j][i]=t;}}
输入答案,中间不含空格:
14.以下sstrcpy()函数实现字符串复制,即将t所指定字符串复制到s所指内存空间中,形成一个新字符串s。请填空。 void sstrcpy(char *s, char *t) { while(*s++= 【15】 );} main() { char str1[100],str2[]="abcdefgh"; sstrcpy(str1, str2); printf("%s\n",str1);}
输入答案,中间不含空格:
15.以下程序的运行结果是: 【16】 #include char *ss(char *s) {return s+strlen(s)/2 ;} main() { char *p, *str="abcdefgh"; p=ss(str);printf("%s\n",p);}
输入答案,中间不含空格:
16.下面程序的运行结果是: 【17】 。 int f(int a[], int n) { if(n>1)return a[0]+f(&a[1],n-1); else return a[0];} main() { int aa[3]={1,2,3},s; s = f(&aa[0],3);printf("%d\n",s);}
输入答案,中间不含空格:
17.以下程序中给指针p分配3个double型动态内存单元,请填空。 #include main() { double *p; p=(double *)malloc( 【18】 ); p[0]=1.5;p[1]=2.5;p[2]=3.5; printf("%f%f%f\n",p[0],p[1],p[2]);}
输入答案,中间不含空格:
18.以下程序的运行结果是 【19】 。 #include typedef struct student { char name[10]; long sno; float score;} STU; main() { STU a={"Zhangsan",2001,95}, b={"Shangxian",2002, 90}, c={"Anhua",2003,95}, d, *p=&d; d=a; if(strcmp(a.name, b.name)>0)d=b; if(strcmp(c.name, d.name)>0)d=c; printf("%1d %s\n", d.sno, p->name);}
输入答案,中间不含空格:
19.以下sum函数的功能是计算下列级数之和。 S=1+x+x22!+x33!+…+xnn! 请给函数中的各变量正确赋初值。 double sum(double x, int n) { int i;double a,b,s; 【20】 for(i=1; i<=n; i++) {a=a*x;b=b*i;s=s+a/b;} return s; }
输入答案,中间不含空格:
21.以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是 A)if((a>b)&&(b>c))k=1; else k=0 B)if((a>b)=||(b>c))k=1; else k=0; C)if(a<=b)k=0; else if(b<=c)k=1; D)if(a>b)k=1; else if(b>c)k=1; else k=0;
A B C D
22.有以下程序 main() { char k;int i; for(i=1;i<3;i++) { scanf("%c",&k); switch(k) { case ′0′:printf("another\n"); case ′1′:printf("number\n"); } } } 程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是 A)another number B)another number another C)another number number D)number number
A B C D
23.下列程序的输出结果是 main() { int x=0,y=5,z=3; while(z-->0 && ++x<5)y=y-1; printf("%d,%d,%d\n",x,y,z);} A)3,2,0 B)3,2,-1 C)4,3,-1 D)5,-2,-5
A B C D
24.下列程序的输出结果是 main() { int i,s=0; for(i=1;i<10;i+=2)s+=i+1; printf("%d\n",s);} A)自然数1~9的累加和 B)自然数1~10的累加和 C)自然数1~9中奇数之和 D)自然数1~10中偶数之和
A B C D
25.下列程序的输出结果是 main() { int i,n=0; for(i=2;i<5;i++) { do { if(i%3)continue; n++; } while(!i); n++; } printf("n=%d\n",n); } A)n=5 B)n=2 C)n=3 D)n=4
A B C D
26.若程序中定义了以下函数 double myadd(double a,double b) { return (a+b); } 并将其放在调用语句之后,则在调用之前应该对函数进行说明,以下选项中错误的说明是 A)double myadd(double a,b); B)double myadd(double, double); C)double myadd(double b, double a); D)double myadd(double x, double y);
A B C D
27.下列程序的输出结果是 char fun(char x,char y) { if(xmain() { int a=′9′,b=′8′,c=′7′; printf("%c\n",fun(fun(a,b),fun(b,c)));} A)函数调用出错 B)8 C)9 D)7
A B C D
28.设有定义:int n=0,*p=&n,**q=&p;,则以下选项中,正确的赋值语句是 A)p=1; B)*q=2; C)q=p; D)*p=5;
A B C D
29.下列程序的输出结果是 void f(int v,int w) { int t; t=v;v=w;w=t;} main() { int x=1,y=3,z=2; if(x>y)f(x,y); else if(y>z)f(y,z); else f(x,z); printf("%d,%d,%d\n",x,y,z);} A)1,2,3 B)3,1,2 C)1,3,2 D)2,3,1
A B C D
30.下列程序段中b的值是 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=p[5]; A)5 B)6 C)8 D)9
A B C D
31.下列程序的输出结果是 main() { char a[]="abcdefg",b[10]="abcdefg"; printf("%d%d\n",sizeof(a),sizeof(b));} A)77 B)88 C)810 D)1010
A B C D
32.下列程序的输出结果是 void swap1(int c[]) { int t; t=c[0];c[0]=c[1];c[1]=t;} void swap2(int c0,int c1) { int t; t=c0;c0=c1;c1=t;} main() { int a[2]={3,5},b[2]={3,5}; swap1(a);swap2(b[0],b[1]); printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);} A)5 3 5 3 B)5 3 3 5 C)3 5 3 5 D)3 5 5 3
A B C D
33.下列程序的输出结果是 void sum(int*a) {a[0]=a[1];} main() { int aa[10]={1,2,3,4,5,6,7,8,9,10},i; for(i=2;i>=0;i--)sum(&aa[i]); printf("%d\n",aa[0]);} A)4 B)3 C)2 D)1
A B C D
34.下列程序的输出结果是 int f(int b[][4]) { int i,j,s=0; for(j=0;j<4;j++) { i=j; if(i>2)i=3-j; s+=b[i][j];} return s;} main() { int a[4][4]={{1,2,3,4},{0,2,4,6},{3,6,9,12},{3,2,1,0}}; printf("%d\n",f(a));} A)12 B)11 C)18 D)16
A B C D
35.有以下定义 #include char a[10],*b=a; 不能给a数组输入字符串的语句是 A)gets(a) B)gets(a[0]); C)gets(&a[0]); D)gets(b);
A B C D
6.已知字符A的ASCII码值为65,以下语句的输出结果是 【6】 。 charch=′B′;printf("%c%d\n",ch,ch);
输入答案,中间不含空格:
7.有以下语句段 int n1=10,n2=20;printf(" 【7】 ",n1,n2); 要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。 n1=10 n2=20
输入答案,中间不含空格:
8.下列程序的输出结果是 【8】 。 main() { int t=1,i=5; for(;i>=0;i--)t*=i; printf("%d\n",t);}
输入答案,中间不含空格:
9.下列程序的输出结果是 【9】 。 main() { int n=0, m=1, x=2; if(!n)x-=1; if(m)x-=2; if(x)x-=3; printf("%d\n",x);}
输入答案,中间不含空格:
10.下列程序运行时输入;12<回车>,执行后输出结果是 【10】 。 #include main() { char ch1, ch2;int n1,n2; ch1=getchar(); ch2=getchar(); n1=ch1-′0′; n2=n1*10+(ch2-′0′); printf("%d\n",n2);}
输入答案,中间不含空格:
16.下面程序的运行结果是: 【17】 。 int f(int a[], int n) { if(n>1)return a[0]+f(&a[1],n-1); else return a[0];} main() { int aa[3]={1,2,3},s; s = f(&aa[0],3);printf("%d\n",s);}
输入答案,中间不含空格:
17.以下程序中给指针p分配3个double型动态内存单元,请填空。 #include main() { double *p; p=(double *)malloc( 【18】 ); p[0]=1.5;p[1]=2.5;p[2]=3.5; printf("%f%f%f\n",p[0],p[1],p[2]);}
输入答案,中间不含空格:
18.以下程序的运行结果是 【19】 。 #include typedef struct student { char name[10]; long sno; float score;} STU; main() { STU a={"Zhangsan",2001,95}, b={"Shangxian",2002, 90}, c={"Anhua",2003,95}, d, *p=&d; d=a; if(strcmp(a.name, b.name)>0)d=b; if(strcmp(c.name, d.name)>0)d=c; printf("%1d %s\n", d.sno, p->name);}
输入答案,中间不含空格:
19.以下sum函数的功能是计算下列级数之和。 S=1+x+x22!+x33!+…+xnn! 请给函数中的各变量正确赋初值。 double sum(double x, int n) { int i;double a,b,s; 【20】 for(i=1; i<=n; i++) {a=a*x;b=b*i;s=s+a/b;} return s; }
输入答案,中间不含空格: