全国计算机等级考试二级C语言模拟试题5
www.nanhushi.com 佚名 不详
答案
答案
答案
答案
16.设有程序段 int k=10; while(k=0)k=k-1; 则下面描述中正确的是 A)while循环执行10次 B)循环是无限循环 C)循环体语句一次也不执行 D)循环体语句执行一次
A B C D
17.对表达式for(表达式1; ;表达式3)可理解为 A)for(表达式1;0;表达式3) B)for(表达式1;1;表达式3) C)for(表达式1;表达式1;表达式3) D)for(表达式1;表达式3;表达式3)
A B C D
18.以下程序的输出结果是 main() { int a,i;a=0; for(i=1;i<5;i++) { switch(i) { case 0: case 3:a+=2; case 1: case 2:a+=3; default:a+=5; } } printf("%d\n",a); } A)31 B)13 C)10 D)20
A B C D
19.若有如下语句 int x=3; do{ printf("%d\n",x-=2);} while(!(--x)); 则上面程序段 A)输出的是1 B)输出的是1和-2 C)输出的是3和0 D)是死循环
A B C D
20.下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,在划线处应填入的语句是 #include main() { int a,b,t; scanf("%d%d",&a,&b); while() { f(a>b) { =a;a=b;b=t;} printf("%d,%d\n",a,b); scanf("%d%d",&a,&b); } } A)!a=b B)a!=b C)a==b D)a=b
A B C D
21.有以下程序 void fun(int a,int b,int c) {a=456,b=567,c=678;} main() { int x=10,y=20,z=30; fun(x,y,z); printf("%d,%d,%d\n",x,y,z); } 输出结果是 A)30,20,10 B)10,20,30 C)456,567,678 D)678,567,456
A B C D
22.若有说明:int a[][4]={0,0};则下面不正确的叙述是 A)数组a的每个元素都可得到初值0 B)二维数组a的第一维大小为1 C)当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小 D)只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到确定的初值
A B C D
23.有以下程序 main() { char a[]={ ′a′,′b′,′c′,′d′, ′e′, ′f′, ′g′,′h′,′\0′}; int i,j; i=sizeof(a); j=strlen(a); printf("%d,%d\b",i,j); } 程序运行后的输出结果是 A)9,9 B)8,9 C)1,8 D)9,8
A B C D
24.已知学生记录描述为 struct student { int no; char name[20],sex; struct { int year,month,day; } birth; }; struct student s; 设变量s中的“生日”是“1984年11月12日”,对“birth”正确赋值的程序段是 A)year=1984;month=11;day=12; B)s.year=1984;s.month=11;s.day=12; C)birth.year=1984;birth.month=11;birth.day=12; D)s.birth.year=1984;s.birth.month=11;s.birth.day=12;
A B C D
25.以下程序的运行结果是 #define MIN(x,y)(x)<(y)?(x):(y) main() { int i=10,j=15,k; k=10*MIN(i,j); printf("%d\n",k); } A)10 B)15 C)100 D)150
A B C D
26.有如下程序 int func(int a,int b) { return(a+b);} main() { int x=2,y=5,z=8,r; r=func(func(x,y),z); printf("%d\n",r); } 该程序的输出的结果是 A)12 B)13 C)14 D)15
A B C D
27.设有以下说明语句 typedef struct { int n; char ch[8]; } PER; 则下面叙述中正确的是 A)PER 是结构体变量名 B)PER是结构体类型名 C)typedef struct 是结构体类型 D)struct 是结构体类型名
A B C D
28.有如下定义 struct person{char name[9];int age;}; struct person class[10]={"John",17,"paul",19,"Mary",18,"Adam",16,}; 根据上述定义,能输出字母M的语句是 A)printf("%c\n",class[3].name); B)printf("%c\n",class[3].name[1]); C)printf("%c\n",class[2].name[1]); D)printf("%c\n",class[2].name[0]);
A B C D
29.以下程序执行后a的值是 main() { int x,y=252,i=386,*m=&y,*z=&i; x=(z==y); printf("%d",x); } A)252 B)1 C)0 D)运行时出错,x无定值
A B C D
30.阅读下列程序,当运行函数时,输入asd af aa z67,则输出为 #include #include #include int fun (char *str) { int i,j=0; for(i=0;str[i]!=′\0′;i++) if(str[i]!=′ ′)str[j++]=str[i]; str[j]= ′\0′; } main() { char str[81]; int n; clrscr(); printf("Input a string : "); gets(str); puts(str); fun(str); printf("%s\n",str); } A)asdafaaz67 B)asd af aa z67 C)asd D)z67
A B C D
31.下列程序的输出结果是 struct abc { int a, b, c, s;}; main() { struct abc s[2]={{1,2,3},{4,5,6}}; int t; t=s[0].a+s[1].b; printf("%d\n",t); } A)5 B)6 C)7 D)8
A B C D
32.若有定义: char *st= "how are you "; 下列程序段中正确的是 A)char a[11], *p; strcpy(p=a+1,&st[4]); B)char a[11]; strcpy(++a, st); C)char a[11]; strcpy(a, st); D)char a[], *p; strcpy(p=&a[1],st+2);
A B C D
33.下列程序的运行结果是 void fun(int *a, int *b) { int *k; k=a; a=b; b=k; } main() { int a=3, b=6, *x=&a, *y=&b; fun(x,y); printf("%d %d", a, b); } A)6 3 B)3 6 C)编译出错 D)0 0
A B C D
34.请选出正确的程序段 A)int *p; scanf("%d",p); … B)int *s, k; *s=100; … C)int *s, k; char *p, c; s=&k; p=&c; *p=′a′; … D)int *s, k; char *p, e; s=&k; p=&c; s=p; *s=1; …
A B C D
35.若有下面的说明和定义,则sizeof(struct aa)的值是 struct aa { int r1; double r2; float r3; union uu{char u1[5];long u2[2];}ua; } mya; A)30 B)29 C)24 D)22
A B C D
二、填空题(每空2分,共计30分)
1.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为 【1】 。
输入答案,中间不含空格:
2.用树型结构表示实体类型及实体间联系的数据模型称为 【2】 。
输入答案,中间不含空格:
3.类是一个支持集成的抽象数据类型,而对象是类的 【3】 。
输入答案,中间不含空格:
4.数据流图的类型有 【4】 和事务型。
输入答案,中间不含空格:
5.当数据的物理结构(存储结构、存取方式等)改变时,不影响数据库的逻辑结构,从而不致引起应用程序的变化,这是指数据的 【5】 。
输入答案,中间不含空格:
6.以下程序运行结果是 【6】 。 long fib (int g) { switch (g) { case 0∶return 0; case 1∶case2∶return 1; } return (fib(g-1)+fib(g-2)); } main () { long k; k=fib (5); printf ("k=%(d\n)",k); }
输入答案,中间不含空格:
7.以下程序段中,错误的行号是 【7】 。 ① #include ② main () ③ { char str [14];str []={" I love China"}; ④ printf ("%s",str); ⑤ }
输入答案,中间不含空格:
8.将以下程序写成三目运算表达式是 【8】 。 if(a>b)max=a; else max=b;
输入答案,中间不含空格:
9.设x和y均为int型变量,且x=1,y=2,则表达式double(1+x/y)的值为 【9】 。
输入答案,中间不含空格:
10.下面程序的功能是输出数组s中最大元素的下标,请填空。 main() { int k, p,s[]={1, -9, 7, 2, -10, 3}; for(p =0, k =p; p< 6; p++) if(s[p]>s[k]) 【10】 printf("%d\n", k); }
输入答案,中间不含空格:
11.设有以下定义和语句,则*(*(p+2)+1)的值为 【11】 。 int a[3][2]={10, 20, 30, 40, 50, 60}, (*p)[2]; p=a;
输入答案,中间不含空格:
12.下面程序的运行结果是 【12】 。 #define N 10 #define s(x) x*x #define f(x) (x*x) main() { int i1,i2; i1=1000/s(N); i2=1000/f(N); printf("%d %d\n",i1,i2); }
输入答案,中间不含空格:
13.以下程序的输出结果是 【13】 。 unsigned fun6(unsigned num) { unsigned k=1; do{k *=num;num/=10;} while (num); return k; } main() { unsigned n=26; printf("%d\n", fun6(n)); }
输入答案,中间不含空格:
14.以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 例如,若一维数组中的数据是2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10。删除后,数组中的内容应该是2 3 4 5 6 7 8 9 10。请填空。 #include #define N 80 int fun(int a[], int n) { int i,j=1; for(i=1;i if(a[j-1] 【14】 a[i]) a[j++]=a[i]; 【15】; } main() { int a[N]={ 2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10}, i, n=19; printf("The original data :\n"); for(i=0; i n=fun(a,n); printf("\nThe data after deleted :\n"); for(i=0; i }
输入答案,中间不含空格:
答案
21.有以下程序 void fun(int a,int b,int c) {a=456,b=567,c=678;} main() { int x=10,y=20,z=30; fun(x,y,z); printf("%d,%d,%d\n",x,y,z); } 输出结果是 A)30,20,10 B)10,20,30 C)456,567,678 D)678,567,456
A B C D
22.若有说明:int a[][4]={0,0};则下面不正确的叙述是 A)数组a的每个元素都可得到初值0 B)二维数组a的第一维大小为1 C)当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小 D)只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到确定的初值
A B C D
23.有以下程序 main() { char a[]={ ′a′,′b′,′c′,′d′, ′e′, ′f′, ′g′,′h′,′\0′}; int i,j; i=sizeof(a); j=strlen(a); printf("%d,%d\b",i,j); } 程序运行后的输出结果是 A)9,9 B)8,9 C)1,8 D)9,8
A B C D
24.已知学生记录描述为 struct student { int no; char name[20],sex; struct { int year,month,day; } birth; }; struct student s; 设变量s中的“生日”是“1984年11月12日”,对“birth”正确赋值的程序段是 A)year=1984;month=11;day=12; B)s.year=1984;s.month=11;s.day=12; C)birth.year=1984;birth.month=11;birth.day=12; D)s.birth.year=1984;s.birth.month=11;s.birth.day=12;
A B C D
25.以下程序的运行结果是 #define MIN(x,y)(x)<(y)?(x):(y) main() { int i=10,j=15,k; k=10*MIN(i,j); printf("%d\n",k); } A)10 B)15 C)100 D)150
A B C D
答案
26.有如下程序 int func(int a,int b) { return(a+b);} main() { int x=2,y=5,z=8,r; r=func(func(x,y),z); printf("%d\n",r); } 该程序的输出的结果是 A)12 B)13 C)14 D)15
A B C D
27.设有以下说明语句 typedef struct { int n; char ch[8]; } PER; 则下面叙述中正确的是 A)PER 是结构体变量名 B)PER是结构体类型名 C)typedef struct 是结构体类型 D)struct 是结构体类型名
A B C D
28.有如下定义 struct person{char name[9];int age;}; struct person class[10]={"John",17,"paul",19,"Mary",18,"Adam",16,}; 根据上述定义,能输出字母M的语句是 A)printf("%c\n",class[3].name); B)printf("%c\n",class[3].name[1]); C)printf("%c\n",class[2].name[1]); D)printf("%c\n",class[2].name[0]);
A B C D
29.以下程序执行后a的值是 main() { int x,y=252,i=386,*m=&y,*z=&i; x=(z==y); printf("%d",x); } A)252 B)1 C)0 D)运行时出错,x无定值
A B C D
30.阅读下列程序,当运行函数时,输入asd af aa z67,则输出为 #include #include #include int fun (char *str) { int i,j=0; for(i=0;str[i]!=′\0′;i++) if(str[i]!=′ ′)str[j++]=str[i]; str[j]= ′\0′; } main() { char str[81]; int n; clrscr(); printf("Input a string : "); gets(str); puts(str); fun(str); printf("%s\n",str); } A)asdafaaz67 B)asd af aa z67 C)asd D)z67
A B C D
答案
31.下列程序的输出结果是 struct abc { int a, b, c, s;}; main() { struct abc s[2]={{1,2,3},{4,5,6}}; int t; t=s[0].a+s[1].b; printf("%d\n",t); } A)5 B)6 C)7 D)8
A B C D
32.若有定义: char *st= "how are you "; 下列程序段中正确的是 A)char a[11], *p; strcpy(p=a+1,&st[4]); B)char a[11]; strcpy(++a, st); C)char a[11]; strcpy(a, st); D)char a[], *p; strcpy(p=&a[1],st+2);
A B C D
33.下列程序的运行结果是 void fun(int *a, int *b) { int *k; k=a; a=b; b=k; } main() { int a=3, b=6, *x=&a, *y=&b; fun(x,y); printf("%d %d", a, b); } A)6 3 B)3 6 C)编译出错 D)0 0
A B C D
34.请选出正确的程序段 A)int *p; scanf("%d",p); … B)int *s, k; *s=100; … C)int *s, k; char *p, c; s=&k; p=&c; *p=′a′; … D)int *s, k; char *p, e; s=&k; p=&c; s=p; *s=1; …
A B C D
35.若有下面的说明和定义,则sizeof(struct aa)的值是 struct aa { int r1; double r2; float r3; union uu{char u1[5];long u2[2];}ua; } mya; A)30 B)29 C)24 D)22
A B C D
答案
答案
6.以下程序运行结果是 【6】 。 long fib (int g) { switch (g) { case 0∶return 0; case 1∶case2∶return 1; } return (fib(g-1)+fib(g-2)); } main () { long k; k=fib (5); printf ("k=%(d\n)",k); }
输入答案,中间不含空格:
7.以下程序段中,错误的行号是 【7】 。 ① #include ② main () ③ { char str [14];str []={" I love China"}; ④ printf ("%s",str); ⑤ }
输入答案,中间不含空格:
8.将以下程序写成三目运算表达式是 【8】 。 if(a>b)max=a; else max=b;
输入答案,中间不含空格:
9.设x和y均为int型变量,且x=1,y=2,则表达式double(1+x/y)的值为 【9】 。
输入答案,中间不含空格:
10.下面程序的功能是输出数组s中最大元素的下标,请填空。 main() { int k, p,s[]={1, -9, 7, 2, -10, 3}; for(p =0, k =p; p< 6; p++) if(s[p]>s[k]) 【10】 printf("%d\n", k); }
输入答案,中间不含空格:
答案
11.设有以下定义和语句,则*(*(p+2)+1)的值为 【11】 。 int a[3][2]={10, 20, 30, 40, 50, 60}, (*p)[2]; p=a;
输入答案,中间不含空格:
12.下面程序的运行结果是 【12】 。 #define N 10 #define s(x) x*x #define f(x) (x*x) main() { int i1,i2; i1=1000/s(N); i2=1000/f(N); printf("%d %d\n",i1,i2); }
输入答案,中间不含空格:
13.以下程序的输出结果是 【13】 。 unsigned fun6(unsigned num) { unsigned k=1; do{k *=num;num/=10;} while (num); return k; } main() { unsigned n=26; printf("%d\n", fun6(n)); }
输入答案,中间不含空格:
14.以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 例如,若一维数组中的数据是2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10。删除后,数组中的内容应该是2 3 4 5 6 7 8 9 10。请填空。 #include #define N 80 int fun(int a[], int n) { int i,j=1; for(i=1;i if(a[j-1] 【14】 a[i]) a[j++]=a[i]; 【15】; } main() { int a[N]={ 2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10}, i, n=19; printf("The original data :\n"); for(i=0; i n=fun(a,n); printf("\nThe data after deleted :\n"); for(i=0; i }
输入答案,中间不含空格:
文章录入:杜斌 责任编辑:杜斌
上一篇文章: 全国计算机等级考试二级C语言模拟试题12答案 下一篇文章: 全国计算机等级考试二级C语言模拟试题4
【字体:小 大 】【发表评论 】【加入收藏 】【告诉好友 】【打印此文 】【关闭窗口 】
联 系 信 息
QQ:88236621 电话:15853773350 E-Mail:malenurse@163.com 免费发布招聘信息 做中国最专业男护士门户网站
最 新 热 门
最 新 推 荐
相 关 文 章
没有相关文章