全国计算机等级考试二级C语言模拟试题2
www.nanhushi.com 佚名 不详
答案
一、选择题(每题2分,共计70分)
1.已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为 A)GEDHFBCA B)DGEBHFCA C)ABCDEFGH D)ACBFEDHG
A B C D
2.树是结点的集合,它的根结点数目是 A)有且只有1 B)1或多于1 C)0或1 D)至少2
A B C D
3.如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是 A)e3,e1,e4,e2 B)e2,e4,e3,e1 C)e3,e4,e1,e2 D)任意顺序
A B C D
4.在设计程序时,应采纳的原则之一是 A)不限制goto语句的使用 B)减少或取消注解行 C)程序越短越好 D)程序结构应有助于读者理解
A B C D
5.程序设计语言的基本成分是数据成分、运算成分、控制成分和 A)对象成分 B)变量成分 C)语句成分 D)传输成分
A B C D
答案
答案
11.下列叙述中正确的是 A)C语言编译时不检查语法 B)C语言的子程序有过程和函数两种 C)C语言的函数可以嵌套定义 D)C语言的函数可以嵌套调用
A B C D
12.在C语言中,退格符是 A)\n B)\t C)\f D)\b
A B C D
13.以下叙述中正确的是 A)构成C程序的基本单位是函数 B)可以在一个函数中定义另一个函数 C)main()函数必须放在其他函数之前 D)所有被调用的函数一定要在调用之前进行定义
A B C D
14.若已定义:int a=25,b=14,c=19;以下三目运算符(?:)所构成语句的执行后a<=25&&b--<=2&&c?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b=%d,c=%d\n",a,b,c);程序输出的结果是 A)***a=25,b=13,c=19 B)***a=26,b=14,c=19 C)### a=25,b=13,c=19 D)### a=26,b=14,c=19
A B C D
15.下列程序段的输出结果是 int a=1234; float b=123.456; double c=12345.54321; printf("-,%2.1f,%2.1f",a,b,c); A)无输出 B)12,123.5,12345.5 C)1234,123.5,12345.5 D)1234,123.4,1234.5
A B C D
答案
16.若运行以下程序时,从键盘输入 ADescriptor(表示回车),则下面程序的运行结果是 #include main() { char c; int v0=1,v1=0,v2=0; do{ switch(c=getchar()) { case ′a′:case ′A′: case ′e′:case ′E′: case ′i′:case ′I′: case ′o′:case ′O′: case ′u′:case ′U′:v1+=1; default:v0+=1;v2+=1; } } while(c!=′\n′); printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2); } A)v0=7,v1=4,v2=7 B)v0=8,v1=4,v2=8 C)v0=11,v1=4,v2=11 D)v0=13,v1=4,v2=12
A B C D
17.设有以下程序段 int x=0,s=0; while(!x!=0)s+=++x; printf("%d",s); 则 A)运行程序段后输出0 B)运行程序段后输出1 C)程序段中的控制表达式是非法的 D)程序段执行无限次
A B C D
18.执行下面的程序段后,变量k中的值为 int k=3, s[2]; s[0]=k; k=s[1]*10; A)不定值 B)33 C)30 D)10
A B C D
19.以下程序段的描述,正确的是 x=-1; do {x=x*x;} while(!x); A)是死循环 B)循环执行两次 C)循环执行一次 D)有语法错误
A B C D
20.有如下程序段 int a=14,b=15,x; char c=′A′; x=(a&&b)&&(c<′B′); 执行该程序段后,x的值为 A)ture B)false C)0 D)1
A B C D
答案
21.下列程序执行后的输出结果是 void func1(int i); void func2(int i); char st[]="hello,friend!"; void func1(int i) { printf("%c",st[i]); if(i<3){i+=2;func2(i);} } void func2(int i) { printf("%c",st[i]); if(i<3){i+=2;func1(i);} } main() { int i=0; func1(i); printf("\n");} A)hello B)hel C)hlo D)hlm
A B C D
22.以下函数返回a所指数组中最大值所在的下标值 fun(int *a,int n) { int i,j=0,p; p=j; for(i=j;iif(a[i]>a[p]); return(p); } 在下划线处应填入的内容是 A)i=p B)a[p]=a[i] C)p=j D)p=i
A B C D
23.以下程序的输出结果是#include void prt (int *x, int*y, int*z) { printf("%d,%d,%d\n",++*x,++*y,*(z++));} main() { int a=10,b=40,c=20; prt (&a,&b,&c); prt (&a,&b,&c); } A)11,42, 31 12,22,41 B)11,41,20 12,42,20 C)11,21,40 11,21,21 D)11,41,21 12,42,22
A B C D
24.有如下程序 main() { char s[]="ABCD", *p; for(p=s+1; p} 该程序的输出结果是 A)ABCD BCD CD D B)A B C D C)B C D D)BCD CD D
A B C D
25.下列程序执行后的输出结果是 main() { int a[3][3], *p,i; p=&a[0][0]; for(i=1; i<9; i++)p[i]=i+1; printf("%d\n",a[1][2]); } A)3 B)6 C)9 D)随机数
A B C D
答案
26.定义如下变量和数组 int k; int a[3][3]={9,8,7,6,5,4,3,2,1}; 则下面语句的输出结果是 for(k=0;k<3;k++)printf("%d",a[k][k]); A)7 5 3 B)9 5 1 C)9 6 3 D)7 4 1
A B C D
27.下列程序执行后的输出结果是 main() { char arr[2][4]; strcpy(arr,"you"); strcpy(arr[1],"me"); arr[0][3]=′&′; printf("%s\n",arr); } A)you&me B)you C)me D)err
A B C D
28.以下正确的说法是 A)定义函数时,形参的类型说明可以放在函数体内 B)return后边的值不能为表达式 C)如果函数值的类型与返回值类型不一致,以函数值类型为准 D)如果形参与实参类型不一致,以实参类型为准
A B C D
29.有以下程序 int f(int n) { if(n==1)return 1; else return f(n-1)+1; } main() { int i,j=0; for(i=1;i<3;i++)j+=f(i); printf("%d\n",j); } 程序运行后的输出结果是 A)4 B)3 C)2 D)1
A B C D
30.设有如下定义 struck sk { int a; float b; } data; int *p; 若要使p指向data中的a域,正确的赋值语句是 A)p=&a; B)p=data.a; C)p=&data.a; D)*p=data.a;
A B C D
答案
31.以下对结构体类型变量的定义中,不正确的是 A)typedef struct aa { int n; float m; } AA; AA tdl; B)#define AA struct aa AA{ int n; float m; } tdl; C)struct { int n; float m; } aa;struct aa tdl; D)struct { int n; float m; } tdl;
A B C D
32.在下述程序中,判断i>j共执行的次数是 main() { int i=0, j=10, k=2, s=0; for (;;) { i+=k; if(i>j) { printf("%d",s); break; } s+=i; } } A)4 B)7 C)5 D)6
A B C D
33.若有以下程序 #include void f(int n); main() { void f(int n); f(5); } void f(int n) { printf("%d\n",n); } 则以下叙述中不正确的是 A)若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f B)若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正确调用函数f C)对于以上程序,编译时系统会提示出错信息:提示对f函数重复说明 D)函数f无返回值,所以可用void将其类型定义为无返回值型
A B C D
34.以下程序的输出是 struct st { int x; int *y;} *p; int dt[4]={ 10,20,30,40 }; struct st aa[4]={ 50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0]}; main() { p=aa; printf("%d\n",++(p->x)); } A)10 B)11 C)51 D)60
A B C D
35.有以下程序 #include main() { FILE *fp; int i=20,j=30,k,n; fp=fopen("d1.dat","w"); fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j); fclose(fp); fp=fopen("d1.dat","r"); fscanf(fp,"%d%d",&k,&n); printf("%d %d\n",k,n); fclose(fp); } 程序运行后的输出结果是 A)20 30 B)20 50 C)30 50 D)30 20
A B C D
答案
答案
6.以下程序的功能是从健盘输入若干学生的成绩,并输出最高成绩和最低成绩,当输入负数时结束。请填空。 main () { float x,amax,amin; scanf ("%f",&x); amax=x; amin=x; while ( 【6】 ) { if (x>amax) amax=x; else if 【7】 amin=x; else scanf ("%f",&x); } printf ("\n amax=%f\n amin=%f\n",amax,amin); }
输入答案,中间不含空格:
7.设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部 【8】 。要求形参名为b。 main() { double s[10][22]; int n; ┆ ┆ fun(s); ┆ }
输入答案,中间不含空格:
8.下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0,请填空。 main() { int i, x, y=1; scanf("%d", &x); for(i=2; i<=x/2; i++) if 【9】 { y=0; break;} printf("%d\n", y); }
输入答案,中间不含空格:
9.下面程序的功能是将一个字符串str的内容颠倒过来,请填空。 #include main() { int i,j, 【10】 ;char str[]={"1234567"}; for(i=0,j=strlen(str) 【11】 ;i { k=str[i];str[i]=str[j];str[j]=k;} printf("%s\n",str); }
输入答案,中间不含空格:
10.以下程序可把输入的十进制数以十六进制数的形式输出,请填空。 main() { char b[17]={"0123456789ABCDEF"}; int c[64],d,i=0,base=16; long n; printf("Enter a number:\n");scanf("%ld",&n); do{c[i]= 【12】 ;i++;n=n/base;} while(n!=0); printf("Transmite new base:\n"); for(--i;i>=0;--i) {d=c[i];printf("%c",b 【13】 );} printf("\n"); }
输入答案,中间不含空格:
答案
文章录入:杜斌 责任编辑:杜斌
上一篇文章: 全国计算机等级考试二级C语言模拟试题3 下一篇文章: 全国计算机等级考试二级C语言模拟试题1
【字体:小 大 】【发表评论 】【加入收藏 】【告诉好友 】【打印此文 】【关闭窗口 】
联 系 信 息
QQ:88236621 电话:15853773350 E-Mail:malenurse@163.com 免费发布招聘信息 做中国最专业男护士门户网站
最 新 热 门
最 新 推 荐
相 关 文 章
没有相关文章