• 回答数

    3

  • 浏览数

    123

我是新悦
首页 > 考试培训 > 计算机二级考试真题及答案

3个回答 默认排序
  • 默认排序
  • 按时间排序

酸奶娃儿

已采纳

2010年春浙江省高等学校 计算机等级考试试卷 ( 二级 C ) 一、程序阅读与填空(24小题,每小题3分,共72分) 1. 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 输入一个整数,求它的各位数字之和及位数。例如,17的各位数字之和是8,位数是2。 运行示例: Enter an integer:-153 sum = 8, count = 3 【程序】 #include <> main() { int count = 0, in, sum = 0; printf("Enter an integer:"); scanf("%d", &in); if( (1) ) in = -in; do{ sum = sum + (2) ; (3) ; count++; }while( (4) ); printf("sum = %d, count = %d\n", sum, count); } 【供选择的答案】 (1) A、in == 0 B、in > 0 C、in != 0 D、in < 0 (2) A、in /10 B、in mod 10 C、in % 10 D、in (3) A、in = in % 10 B、in /10 C、in = in /10 D、in % 10 (4) A、in % 10 != 0 B、in != 0 C、!in D、in / 10 != 0 2. 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 输出50到70之间的所有素数。要求定义和调用函数isprime(m)判断m是否为素数,若m为素数则返回1,否则返回0。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。 运行示例: 53 59 61 67 【程序】 #include <> #include <> main() { int i; int isprime(int m); for(i = 50; i <= 70; i++) if( (5) ) printf("%d ", i); } int isprime(int m) { int i, k; (6) k = (int)sqrt((double)m); for(i = 2; i <= k; i++) if(m % i == 0) (7) ; (8) ; } 【供选择的答案】 (5) A、isprime (m) != 0 B、isprime (i) != 0 C、isprime (m) == 0 D、isprime (i) == 0 (6) A、if(m != 1) return 1; B、if(m == 1) return 0; C、; D、if(m == 1) return 1; (7) A、return 0 B、return 1 C、return i <= k D、return (8) A、return 1 B、return 0 C、return D、return i <= k 3 . 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 输入6个整数,找出其中最小的数,将它和最后一个数交换,然后输出这6个数。要求定义和调用函数swap(x, y),该函数交换指针x和y所指向单元的内容。 运行示例: Enter 6 integers: 6 1 8 2 10 97 After swaped: 6 97 8 2 10 1 【程序】 void swap(int *x, int *y) { int t; (9) ; } main() { int i, index, a[10]; for(i = 0; i < 6; i++) scanf("%d", &a[i]); (10) ; for(i = 1; i < 6; i++) if(a[index] > a[i]) (11) ; (12) ; printf("After swaped:"); for(i = 0; i < 6; i++) printf("%d ", a[i]); printf("\n"); } 【供选择的答案】 (9) A、t = *x, *x = *y, *y = t B、t = x, x = y, y = t C、*t = *x, *x = *y, *y = *t D、&t = x, x = y, y = &t (10)A、index = 0 B、index = 5 C、index = index D、index = 1 (11)A、a[index] = a[i] B、i = index C、a[i] = a[index] D、index = i (12)A、swap(a[index], a[5]) B、swap(*a[index], *a[5]) C、swap(a[*index], a[*5]) D、swap(&a[index], &a[5]) 4. 阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序】 #include <> #define T(c) (((c) >= '0') && ((c) <= '9') ? (c) - '0' : -1) void f1(char ch) { switch(ch){ case '0': printf("0"); case '1': printf("1"); case '2': printf("2");break; case '3': printf("3"); default: printf("9"); } printf("\n"); } double f2() { return (double)(5/2); } double f3(int n) { if(n == 1) return ; else return + (n-1); } main() { printf("%d %d\n", T('7'), T('a')); f1('1'); printf("%.1f\n", f2()); printf("%.3f\n", f3(4)); } 【问题】 (13) 程序运行时,第1行输出 (13) 。 A、7 -1 B、-1 7 C、7 a D、-1 -1 (14) 程序运行时,第2行输出 (14) 。 A、1239 B、12 C、1 D、9 (15) 程序运行时,第3行输出 (15) 。 A、 B、2 C、 D、3 (16) 程序运行时,第4行输出 (16) 。 A、 B、 C、 D、 5. 阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序】 程序1 #include <> main() { int i, j, t, a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12}; for(i = 0; i < 3; i++) for(j = 0; j <= i/2; j++){ t = a[i][j], a[i][j] = a[i][3-j], a[i][3-j] = t; } printf("%d\n", a[0][1]); printf("%d\n", a[2][2]); } 程序2 #include <> main() { char str[10] = "27"; int i, number = 0; for(i = 0; str[i] != '\0'; i++) if(str[i] >= '0' && str[i] <= '7') number = number * 8 + str[i] - '0'; printf("%d\n", number); for(i = 0; str[i] != '\0'; i++) if(str[i] >= '0' && str[i] <= '5') number = number * 6 + str[i] -'0'; printf("%d\n", number); } 【问题】 (17) 程序1运行时,第1行输出 (17) 。 A、3 B、4 C、1 D、2 (18) 程序1运行时,第2行输出 (18) 。 A、12 B、11 C、10 D、9 (19) 程序2运行时,第1行输出 (19) 。 A、2 B、27 C、23 D、16 (20) 程序2运行时,第2行输出 (20) 。 A、19 B、140 C、147 D、2 6 阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序】 #include <> main() { int i, j; char ch, *p1, *p2, *s[4]={"four","hello","peak","apple"}; for(i = 0; i < 4; i++){ p1 = p2 = s[i]; ch = *(p1 + i); while(*p1 != '\0'){ if(*p1 != ch){ *p2 = *p1; p2++; } p1++; } *p2 = '\0'; } for(i = 0; i < 4; i++) printf("%s\n", s[i]); } 【问题】 (21) 程序运行时,第1行输出 (21) 。 A、our B、four C、fur D、fou (22) 程序运行时,第2行输出 (22) 。 A、ello B、hllo C、heo D、hell (23) 程序运行时,第3行输出 (23) 。 A、peak B、eak C、pek D、pak (24) 程序运行时,第4行输出 (24) 。 A、pple B、apple C、ale D、appe 二、程序编写 (每小题14分,共28分) 1.编写程序,输入100个整数,将他们存入数组a,求数组a中所有奇数之和。 2.按下面要求编写程序: (1)定义函数total(n)计算 ,函数返回值类型是int。 (2)定义函数main(),输入正整数n,计算并输出下列算式的值。要求调用函数total(n)计算 。 计算机等级考试参考答案(二级 C ) 一、程序阅读与填空 (24小题,每小题3分,共72分) ⑴ D ⑵ C ⑶ C ⑷ B ⑸ B ⑹ B ⑺ A ⑻ A ⑼ A ⑽ A ⑾ D ⑿ D ⒀ A ⒁ B ⒂ C ⒃ D ⒄ D ⒅ C ⒆ C ⒇ B (21)A (22)B (23)C (24)D 二、程序编写 (每小题14分,共28分) 1. #include <> void main() { int a[100], i, s=0; for(i = 0; i < 100; i++) { scanf("%d", &a[i]); if(a[i] % 2 == 1) s = s + a[i]; } printf("%d\n", s); } 2. #include <> int total(int n) { int i, s = 0; for(i = 1; i <= n; i++) s = s + i; return s; } void main() { int i, n; float s = 0; scanf("%d", &n); for(i = 1; i <= n; i++) s = s + / total(i); printf("%f\n", s); }

计算机二级考试真题及答案

239 评论(14)

一点流殇

2010年9月全国计算机等级考试二级C语言笔试试题及答案一、选择题((1)-(10)每题2分,(11)-(50)每题1分.共60分))(1)下列选项中不属于软件生命周期开发阶段任务的是 A)详细设计 B)概要设计 C)软件维护 D)软件测试(2)树是结点的集合,它的根结点数目是A)有且只有1 B)1或多于1 C)0或1 D)至少2(3)在面向对象方法中,实现信息隐蔽是依靠A)对象的继承 B)对象的多态 C)对象的封装 D)对象的分类(4)程序设计语言的基本成分是数据成分、运算成分、控制成分和 A)语句成分 B)变量成分 C)对象成分 D)传输成分(5)冒泡排序在最坏情况下的比较次数是 A)n/2 B)nlog2n C)n(n-1)/2 D)n(n+1)/2(6)下列叙述中,不属于软件需求规格说明书的作用的是A)作为确认测试和验收的依据B)反映出用户问题的结构,可以作为软件开发工作的基础和依据 C)便于用户、开发人员进行理解和交流D)便于开发人员进行需求分析 (7)下列叙述中错误的是 A)一个C语言程序只能实现一种算法 B)C程序可以由多个程序文件组成 C)C程序可以由一个或多个函数组成 D)一个函数可单独作为一个C程序文件存在(8)下列不属于软件工程的3个要素的是A)方法 B)过程 C)工具 D)环境 (9)下列叙述中正确的是A)数据库系统是一个独立的系统,不需要操作系统的支持B)数据库技术的根本目标是要解决数据的共享问题C)数据库管理系统就是数据库系统D)以上三种说法都不对(10)下列叙述中正确的是 A)每个C程序文件中都必须有一个main()函数 B)在C程序的函数中不能定义另一个函数 C)C程序可以由一个或多个函数组成 D)在C程序中main()函数的位置是固定的(11)将E-R图转换到关系模式时,实体与联系都可以表示成 A)属性 B)关系 C)键 D)域 (12)下列定义变量的语句中错误的是 A)double int_; B)int _int; C)char For D)float USS(13)下列叙述中正确的是 A)C语言编译时不检查语法 B)C语言的子程序有过程和函数两种 C)C语言的函数可以嵌套定义 D)C语言的函数可以嵌套调用(14)以下选项中,合法的一组C语言数值常量是A) 0x8A B)12 C).177 D) 028(15)以下叙述中正确的是 A)构成C程序的基本单位是函数 B)可以在一个函数中定义另一个函数 C)main()函数必须放在其他函数之前 D)所有被调用的函数一定要在调用之前进行定义 (16)若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是A)scanf("%d",&p); B)scanf("%d%d%d",a,b,c);C)scanf("%d",p); D) scanf("%d",a,b,c);(17) 有以下程序 main() {int x,y,z; x=y=1; z=x++,y++,++y; printf("%d,%d,%d\n",x,y,z); } 程序运行后的输出结果是 A)2,2,3 B)2,2,2 C)2,3,1 D)2,1,1(18) 若已定义: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 (19)下列程序段的输出结果是 int a=1234; float b=; double c=; printf("-,%",a,b,c); A)无输出 B)12, C)1234, D)1234, (20)有以下程序 main() {int a=0,b=0; a=10; /*给a赋值 b=20; 给b赋值 */ printf("a+b=%d\n",a+b); /* 输出计算结果 */ } 程序运行后输出结果是 A)30 B)a+b=30 C)a+b=0 D)出错(21)若运行以下程序时,从键盘输入 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=11,v1=4,v2=11 B)v0=8,v1=4,v2=8 C)v0=7,v1=4,v2=7 D)v0=13,v1=4,v2=12 (22) 有以下程序#includemain(){int y=9;for( y>0;y--)if(y%3= =0) printf("%d",--y);}程序的运行结果是A)732 B)433 C)852 D)874(23) 设有以下程序段 int x=0,s=0; while(!x!=0)s+=++x; printf("%d",s); 则 A)运行程序段后输出0 B)运行程序段后输出1 C)程序段中的控制表达式是非法的 D)程序段执行无限次 (24)有以下程序 fun(int x,int y){return(x+y);} main() {int a=1,b=2,c=3,sum; sum=fun((a++,b++b,a+b),c++); printf("%d\n",sum); } 执行后的输出结果是 A)5 B)7 C)8 D)3(25)执行下面的程序段后,变量k中的值为 int k=3, s[2]; s[0]=k; k=s[1]*10; A)不定值 B)35 C)31 D)20 (26)以下叙述中错误的是A)改变函数形参的值,不会改变对应实参的值B)函数可以返回地址值C)可以给指针变量赋一个整数作为地址值D)当在程序的开头包含文件时,可以给指针变量赋NULL(27)以下程序段的描述,正确的是 x=-1; do {x=x*x;} while(!x); A)是死循环 B)循环执行两次 C)循环执行一次 D)有语法错误 (28)有以下程序 fun(int x,int y) {static int m=0,i=2; i+=m+1;m=i+x+y; return m; } main() {int j=1,m=I,k; k=fun(j,m); printf("%d",k); k=fun(j,m); printf("%d\n",k) } 执行后的输出结果是A)5,5 B)5,11 C)11,11 D)11,5(29)有以下程序 fun(int x) {int p; if(x==0║x= =1) return(3); p=x-fun(x=2); retum p; }main() { prinf("%d\n",fun(7));} 执行后的输出结果是A)7 B)3 C)3 D)0(30)在16位编译系统上,右有定义int a[ ]={10,20,30},*p=&a;,当执行p++;后,下列说法错误的是 A)p向高地址移了一个字节 B)p抽高地址移了一个存储单元C)p向高地址移了两个字节 D)p与a+1等价(31)有以下程序 main() {int a=1,b=3,c=5; int *p1=&a,*p2=&b,*p=&c; *p=*p1*(*p2); printf("%d\n",c); } 执行后的输出结果是A)1 B)2 C)3 D)4(32)下列程序执行后的输出结果是 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 (33)在下述程序中,判断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 (34)以下函数返回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 (35)下列程序执行后的输出结果是 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)随机数 (36) 有以下程序#includevoid fun(int *a,int n)/*fun函数的功能是将a所指数组元素从大到小排序*/{int t,i,j;for(i=0;ifor(j=i+1;jif (a}main(){int c[10]={1,2,3,4,5,6,7,8,9,0},i;fun(c+4,6);for (i=0;i<10;i++) printf("%d,",c);printf("\n");}程序运行的结果是A)1,2,3,4,5,6,7,8,9,0, B)0,9,8,7,6,5,1,2,3,4,C) 0,9,8,7,6,5,4,3,2,1, D)1,2,3,4,9,8,7,6,5,0,(37)以下程序的输出结果是#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 (38) 有以下程序:#include void fun(char *t,char *s){while(*t!=0)t++;while((*t++=*s++)!=0);}main(){char ss[10]=”acc”,aa[10]=”bbxxyy”;fun(ss,aa);printf(“%s,%s\n”,ss,aa);}程序运行结果是A) accxyy , bbxxyy B) acc, bbxxyyC) accxxyy,bbxxyy D) accbbxxyy,bbxxyy(39) 有以下程序 #include main() { FILE *fp; int i=20,j=30,k,n; fp=fopen("","w"); fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j); fclose(fp); fp=fopen("","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 (40) 有以下程序 main() {int x[3][2]={0},I; for(I=0;I<3;I++) scanf("%d",x[i]); printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]); } 若运行时输入:246<回车>,则输出结果为A)2 0 0 B)2 0 4 C)2 4 0 D)2 4 6(41)有以下程序 int add(int a,int b){return+b};} main() {int k,(*f)(),a=5,b=10; f=add; … } 则以下函数调用语句错误的是 A)k=(*f)(a,b); B)k=add(a,b); C)k=*f(a,b); D)k=f(a,b);(41)有以下程序 #include <> main(int argc,char *argv[]) {int i=1,n=0; while(i #define N 5 #define M N+1 #define f(x) (x*M) main() {int i1,i2; i1=f(2); i2=f(1+1); printf(“%d %d\n”,i1,i2); } 程序的运行结果是A)12 12 B)11 7 C)11 11 D)12 7(44)设有以下语句 typedef struct TT {char c; int a[4];}CIN; 则下面叙述中正确的是 A)可以用TT定义结构体变量 B)TT是struct类型的变量C)可以用CIN定义结构体变量 D)CIN是struct TT类型的变量(45)有以下结构体说明、变量定义和赋值语句 struct STD {char name[10]; int age; char sex; }s[5],*ps; ps=&s[0]; 则以下scanf函数调用语句中错误引用结构体变量成员的是 A)scanf(“%s”,s[0].name); B)scanf(“%d”,&s[0].age);C)scanf(“%c”,&(ps>sex)); D)scanf(“%d”,ps>age);(46)若有以下定义和语句 union data { int i; char c; float f;}x; int y; 则以下语句正确的是A)x=; B); C)y=x; D)printf(“%d\n”,x);(47)若变量已正确定义,则以下语句的输出结果是 s=32; s^=32;printf(“%d”,s);A)-1 B)0 C)1 D)32(48) 若程序中有宏定义行:#define N 100 则以下叙述中正确的是A)宏定义行中定义了标识符N的值为整数100B)在编译程序对C源程序进行预处理时用100替换标识符NC) 对C源程序进行编译时用100替换标识符ND)在运行时用100替换标识符N(49)以下叙述中正确的是 A)C语言中的文件是流式文件,因此只能顺序存取数据 B)打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖 C)在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据D)当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失(50)有以下程序 #include <> main() {FILE *fp; int i; char ch[]=”abcd”,t; fp=fopen(“”,”wb+”); for(i=0;i<4;i++)fwriter&ch[],1,1fp; fseek(fp,-2L,SEEK_END); fread(&t,1,1,fp); fclose(fp); printf(“%c\n”,t); } 程序执行后的输出结果是 A)d B)c C)b D)a二、填空题(每空2分,共40分)(1)在面向对象方法中,类之间共享属性和操作的机制称为 【1】 。 (2)一个关系表的行称为 【2】 。(3)耦合和内聚是评价模块独立性的两个主要标准,其中 【3】 反映了模块内各成分之间的联系。 (4)线性表的存储结构主要分为顺序存储结构和链式存储结构.队列是一种特殊的线性表,循环队列是队列的【4】存储结构.(5) 【5】 的任务是诊断和改正程序中的错误。(6) 以下程序的输出结果是【6】.#include main(){ int n=12345,d;while(n!=0){ d=n%10; printf("%d",d); n/=10;}}(7)以下程序运行后的输出结果是 【7】 。main(){ int m=011,n=11; printf("%d %d\n",++m,n++);}(8)有以下程序,若运行时从键盘输入:18,11<回车>,则程序输出结果是 【8】 。main(){ int a,b; printf("Enter a,b:");scanf("%d,%d",&a,&b); while(a!=b) { while(a>b) a-=b; while(b>a) b-=a; } printf("%3d%3d\n",a,b); }(9) 有以下程序段,且变量已正确定义和赋值for(s=;k<=n;k++) s=s+(k*(k+1));printf("s=%f\n\n",s);请填空,使下面程序段的功能为完全相同s=;k=1;while(_【9】_______){ s=s+(k*(k+1)); _【10】_______;}printf("s=%f\n\n",s);(10)执行以下程序的输出结果是【11】______.#include main(){ int i,n[4]={1};for(i=1;i<=3;i++){ n=n[i-1]*2+1; printf("%d",n); }}(11)以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换.请填空.#include viod f(int x[],int n){ int p0,p1,i,j,t,m;i=j=x[0]; p0=p1=0;for(m=0;m{ if(x[m]>i) {i=x[m]; p0=m;}else if(x[m]}t=x[p0]; x[p0]=x[n-1]; x[n-1]=t;t=x[p1];x[p1]= _【12】_______; 【13】______=t;}main(){ int a[10],u;for(u=0;u<10;u++) scanf("%d",&a);f(a,10);for(u=0;u<10;u++) printf("%d",a);printf("\n");}(12)下列程序中的函数strcpy2()实现字符串两次复制,即将t所指字符串复制两次到s所指内存空间中,合并形成一个新的字符串。例如,若t所指字符串为efgh,调用strcpy2后,s所指字符串为efghefgh。请填空。#include <>#include <>void strcpy2(char *s,char *t){ char *p=t; while(*s++=*t++); s= 【14】 ; while( 【15】 =*p++);}main(){ char str1[100]="abcd",str2[]="efgh"; strcpy2(str1 ,str2); printf("%s\n",str1);}(13)以下程序统计从终端输入的字符中大写字母的个数,num[0]中统计字母A的个数,num[1]中统计字母B的个数,其它依次类推.用#号结束输入,请填空.#include #include main(){ int num[26]={0},i; char c;while((_【16】_______)!='#')if(isupper(c)) num[c-‘A’]+= 【17】_______;for(i=0;i<26;i++)Printf("%c:%d\n",i+'A',num);}(14)以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算:y1=(x+8)2-2(x+8)+6y2=sin2(x)-2sin(x)+6请填空。#include ""double fun(double x) { return(x*x-2*x+6); }main(){ double x,y1,y2; printf("Enter x:"); scanf("%lf",&x); y1=fun( 【18】 ); y2=fun( 【19】 ); printf("y1=%lf,y2=%lf\n",y1,y2); }(15) 以下程序的输出结果是_【20】______.#include #define M 5#define N M+Mmain(){ int k;k=N*N*5; printf("%d\n",k);}一、选择题答案:1-10:CACDC DADBA 11-20:BDDBA CCCCB 21-30:DCBCA CCBCA 31-40:CCDAB DCDAB 41-50:CABCD BBBDB二、填空题答案:1.继承 2. 元组 3.内聚 4.顺序 5. 程序调试 6. 54321 11 8. 1 <=n k++ 10. 3 7 5 [0] x[0] ,*s++ () 14. (x+8),sin(x) 希望对你有所帮助

148 评论(13)

j解y语h花

2010年3月全国计算机等级考试二级C语言笔试真题及参考答案一、选择题(1)下列叙述中正确的是A)对长度为n的有序链表进行查找,最坏清况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)(2)算法的时间复杂度是指A)算法的执行时间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的基本运算次数(3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是A)编辑软件B)操作系统C)教务管理系统D)浏览器(4)软件(程序)调试的任务是A)诊断和改正程序中的错误B)尽可能多地发现程序中的错误C)发现并改正程序中的所有错误D)确定程序中错误的性质(5)数据流程图(DFD图)是A)软件概要设计的工具B)软件详细设计的工具C)结构化方法的需求分析工具D)面向对象方法的需求分析工具(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于A)定义阶段B)开发阶段C)维护阶段D)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是A)文件B)数据库C)字段D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的A)需求分析阶段B)逻辑设计阶段C)概念设计阶段D)物理设计阶段(10)有两个关系R和T如下: 则由关系K得到关系T的操作是A)选择B)投影C)交D)并(11)以下叙述正确的是A)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(x))C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可作为单独文件形式存在(12)以下关于C语言的叙述中正确的是A)C语言中的注释不可以夹在变量名或关键字的中间B)C语言中的变量可以在使用之前的任何位置进行定义C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D)C语言的数值常量中夹带空格不影响常量值的正确表示(13)以下C语言用户标识符中,不合法的是A)_1B)AaBcC)a_bD)a-b(14)若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是A)a=a++,i++;B)i=(a+k)<=(i+k);C)i=a%11;D)i=!a;(15)有以下程序#include<>main(){ char a,b,c,d;scanf(“%c%c”,&a,&b);c=getchar(); d=getchar();printf(“%c%c%c%c\n”,a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:回车也是一个字符)1234则输出结果是A)1234B)12C)12 3D)12 34(16)以i关于C语言数据类型使用的叙述中错误的是A)若要准确无误差的表示自然数,应使用整数类型B)若要保存带有多位小数的数据,应使用双精度类型C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型(17)若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是A)1B)0C)2D)不知道a的值,不能确定(18)以下选项中与if(a==1)a=b; else a++;语句功能不同的switch语句是A)switch(a){case:a=b;break;
default:a++;

B)switch(a==1)
{case 0:a=b;break;
case 1:a++;
}C)switch(a){default:a++;break;
case 1:a=b;
}D)switch(a==1){case 1:a=b;break;
case 0:a++;
}(19)有如下嵌套的if语句if (am=i*j;
}}printf("m=%d\n",m);}程序运行后的输出结果是A)m=6B)m=2C)m=4D)m=5(21)有以下程序#include(>main(){int a=l;b=2;for(;a<8;a++) {b+=a;a+=2;}printf("%d,%d\n",a,b);}程序运行后的输出结果是A)9,18B)8,11C)7,11D)10,14(22)有以下程序,其中k的初值为八进制数#include <>main(){int k=011;printf("%d\n",k++);}程序运行后的输出结果是A)12B)11C)10D)9(23)下列语句组中,正确的是A)char *s;s="Olympic";B)char s[7];s="Olympic";C)char *s;s={"Olympic"};D)char s[7];s={"Olympic"};(24)以下关于return语句的叙述中正确的是A)一个自定义函数中必须有一条return语句B)一个自定义函数中可以根据不同情况设置多条return语句C)定义成void类型的函数中可以有带返回值的return语句D)没有return语句的自定义函数在执行结束时不能返回到调用处(25)下列选项中,能正确定义数组的语句是A)int num[0..2008];B)int num[];C)int N=2008; int num[N];D)#define N 2008 int num[N];(26)有以下程序#include <>void fun(char *c,int d){*c=*c+1;d=d+1;printf("%c,%c,",*c,d);main(){char b='a',a='A';fun(&b,a);printf("%e,%e\n",b,a);}程序运行后的输出结果是A)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B(27)若有定义int(*Pt)[3];,则下列说法正确的是A)定义了基类型为int的三个指针变量B)定义了基类型为int的具有三个元素的指针数组ptC)定义了一个名为*pt、具有三个元素的整型数组D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组(28)设有定义double a[10],*s=a;,以下能够代表数组元素a[3]的是A)(*s)[3]B)*(s+3)C)*s[3]D)*s+3(29)有以下程序#include()main(){int a[5]={1,2,3,4,5},b[5]={O,2,1,3,0},i,s=0;for(i=0;i<5;i++) s=s+a[b[i]]);printf("%d\n", s);}程序运行后的输出结果是A)6B)10C)11D)15(30)有以下程序#include <>main(){int b [3][3]={O,1,2,0,1,2,O,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=ij<=1;j++) t+=b[i][b[j][i]];printf("%d\n",t);}程序运行后的输出结果是A)1B)3C)4D)9(31)若有以下定义和语句.......这是全国2010全国c语言考试的部分题目,楼主需要的话可以自己去下载转自:酷8学习网

317 评论(9)

相关问答