二级C语言2010年秋季考试(真题汇总)-副本.doc_第1页
二级C语言2010年秋季考试(真题汇总)-副本.doc_第2页
二级C语言2010年秋季考试(真题汇总)-副本.doc_第3页
二级C语言2010年秋季考试(真题汇总)-副本.doc_第4页
二级C语言2010年秋季考试(真题汇总)-副本.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机等级历年真题(二级C语言)2011年05月01日计算机等级考试习题集2010年秋季考试(真题汇总)一、选择题部分1.述一个算法可以有不同的方式,常见的有( )。A.高级语言、自然语言和伪代码 B.机器语言、汇编语言和高级语言C.汇编语言、高级语言和低级语言 D.自然语言、流程图和伪代码2.下列叙述正确的是( )。A函数的定义和调用都不允许嵌套B函数的定义和调用都允许嵌套C函数的定义允许嵌套,但函数的调用不允许嵌套D函数的定义不允许嵌套,但函数的调用允许嵌套3.若已定义:int a5=1,2,3,4,5,*p=a;且p值未发生变化,下列不能表示a1地址的是( )。A. a+1 B. +p C. p+1 D. a+4.若已定义:struct student int num; float score; stu4;以下错误的语句是( )。A. printf(“%d”,(*stu).num); B. *(stu)=*(stu+1);C. stu0-num=101; D. stu0=stu1;5.下列对枚举类型的定义正确的是( )。A. enum a“A”,”B”,”C”; B. enum ax=-2,y=1,z=3;C. enum a=A,B,C; D. enum a=“A”,”B”,”C”;6.下列合法的浮点数的是( ) A .2E0.5 B. 65 C.123 D.E27.若已定义: struct student int num;char name20;stu1,stu2;下列语句中不正确的是A.strcpy(,stu2,name); B. stu1=stu2C.=”li Min” D.stu1.num=stu2.num8.若已定义:double x,y;则下列表达式不能正确计算(x-2)/3*y的是( ) A. y*(x-2)/3 B. (x-2)*y*1/3 C. y/3*(x-2) D .(1/3)*(x-2)*y 9.下列当x的值在5至10之间为“假”,否则为“真”的逻辑表达式为( ) A x=5&x=10 B !(5=x & x=10)C x=10 D !(5=x=10) 10若已定义:char str120=”guangzhou”,str220=”2010”;能形成字符串“GUANGZHOU 2010”的语句是( ) A strcat(strupr(str1),str2); B strcpy(str2,strupr(str1); C strcpy(strupr(str1),str2); D strcat(str2,strupr(str1);11下列叙述正确的是( ) A 为提高程序运行速度可在源程序中加入一些宏定义 B 一个C语言源程序只能有一条预处理命令 C 宏定义不占用程序运行时间,但与程序中的语句一样需要编程 D 宏定义中的宏名必须用大写字母表示 12.下列不合格的字符常量的是( )。A.t B. C. n D.“a”13.若已定义:int x=2,y;则执行语句y=x%2+(-x);后y的值是( )。A 3B. 1 C. 0 D. 214.下列程序段的运行结果是( )int a =8,7,6,5,4,3,2,1,i,sum=0;for(i=0;i8;i+);if(i0); B.m=1,n=2,k=3;C.if(k=0) m=1;n=2; D.if(k0) m=1; else n=2;22.循环语句的循环体中,continue语句的作用是( )。A.结束本次循环,跳出循环体 B.立即终止程序运行C.继续执行continue语句之后的循环体各语句 D.结束本次循环23.下列不属于C语言数据类型的是( )。A.双精度型 B.复数类型C.长整型D.枚举类型24.若已定义: int x=2 , y ;则逗号表达式 y=3,x+=x+(+y)%x的值是( )。A. 4 B.2 C. 3 D. 525.若已定义:int x=2, y=3; 则下列表达式值为假的是( )A. x=(y=x) B. !x|!y C .x&y D .xy|x9) s=k+5; printf(“%dn”,s+k);A 19 B 13 C 10 D 1427.下列程序段的运行结果是( )。 Int a =0,1,2,3,4,5,6,7,8,9 ,i=0,t;While(i=7)t=ai; ai=ai+2; ai+2=t i+=2; for(i=0;i=a|b;A 00000001 B 00000010C 01010000 D 00101000 30.若定义;int x=11; double y=3.5; 则表达式 y/2+x%2/2的值是( )。A 1.5 B 3.5 C 1.0 D 1.7531.对二维数组arr初始化正确的是( )。Aint arr2=1,2,3,4,5; Bint arr23=1,2,3,4;Cint arr23=1,2,3,4,0; Dint arr =1,3,4,5;32.下列程序段中函数调用语句tnk(a,b),m+n);的实参值是( )。Int a=1,b=2,m=3,n=4;Tnk (a,b),m+n);A.1和7 B.3和7 C.2和7 D.2和333.若已定义:int a=5,*p1=&a; float f=6.5,*p2=&f;则下列正确的赋值语句是( )。Af=*p1+*p2 Bp2=p1 Cp2=&a D.p1=&f34.下列程序段的运行结果是( )。Union dataint a; char b;data1;data1.b=A;data1.a+;printf(“%cn”,data1.b);A65 BA C66 DB35.要使用以下程序段给三个整变量x1,x2,x3分别赋值1,2,3,正确的数据输入格式是( )int x1,x2,x3;scanf(“%d,%d,%d”,&x1,&x2,&x3);A.1 2 3 B.123 C.123D.1,2,336.下列对结构类型变量stul的定义和初始化不正确的是( )A.struct student int num; float score;stuct student stul=1001,85.0;B.struct student int num;float score; stul; stul=1001,85.0;C. stuct int num; float score; stul=1001,85.0;D. stuct sthdent int num; float score;stuct student stul;stul-num=1001; stul-score=85.0;37.若已定义:int x=7,y=5;则表达式(xy)4;i-,i-) k+=2A. 3 B.4 C. 1 D.244.若已定义:int a5=1,2,3,4,5,*pa=a;下列叙述错误的是( )A.pa与a的值相等 B. a+与pa+的作用相同C.a2与pa2的值相等 D. *(pa+2)与a2的值相同45.下列( )是不正确的常量形式。A.1E-2 B.“0” C.1.6E6 D.“x5”46.变量的指针,其值是该变量的( )A.值 B.标识符 C.一个标志 D.内存单元地址47.以下语句正确的是( )A.typedef INTEGER int; B.typedef INTEGER: int;C.typedef int INTEGER; D.typedef INTEGER=int;二、改错题部分1.修改程序Cmody251.C,实现从键盘输入一个数字a,计算sum=a+aa+aaa的值。 例如:输入的数字为2,则求2+22+222的值。2.修改程序Cmody252.C,使函数fun(int n)(n从3开始)计算如下分数之和,例如,n=8时: - Cmody251.C-#include #include math.hvoid main() /*/ int i=3,j; /*/ int a,sum=0,t; scanf(%d,&a); while(i=3) t=0; for(j=0; j=i-1; j+) /*/ t+=pow(10,j-1)*a; /*/ sum+=t; i+; printf(%d,sum); getch();- Cmody252.C-#include /*/ fun( int n ) /*/ double x = 0.0; int i,sgn=1; for(i=3;i=n;i+) x+=sgn/(5+/*/ 3*i /*/); sgn=sgn*(-1); return (/*/ sgn /*/);void main() clrscr(); printf(fun(8) = %8.3lfn, fun(8); getch();2.修改程序Cmody262.C,使其中函数fun(int m)能根据m元付款金额,输出应支付100元、50元、10元、1元四种纸币的最少张数组合。如付款金额为273,应支付2张100元、1张50元、2张10元和3张1元。- Cmody262.C-#include void fun( int m ) int n_100,n_50,n_10,n_1; n_100=m/100; n_50=/*/ m/50 /*/; n_10=m%50/10; n_1=/*/ m/10 /*/; printf(100s=%d 50s=%d 10s=%d 1s=%dn,n_100,n_50,n_10,n_1); void main() int m; printf(Input m(m=0):); scanf(%d,&m); fun(/*/int m /*/); getch();2.修改程序Cmody272.C,使函数turn( )实现一串字符的解密,方法为:将字母k还原成a、m还原成c、o还原成e、q还原成g、其他字符保持不变。例如:输入加密字符串为 qrkphimkl bkso 101 则解密后字符串为 graph i cal base 101- Cmody272.C-#include #include void main() char src50,tag50; void turn( ); printf(Please input a string: ); gets(src); strcpy(tag,src); turn(tag); printf(nThe source string: %sn,src); printf(nThe target string: %sn,tag); getch();void turn(/*/ str /*/) char tab42=k,a,m,c,o,e,q,g; int /*/ i=1 /*/,j; while( stri ) for(j=0;j=3;j+) if(/*/ stri=tabj0 /*/) stri=tabj1; break; i+; 2.修改程序Cmody282.C,实现如下图形的输出。 1 0 0 0 0 2 1 0 0 0 3 2 1 0 0 4 3 2 1 0 5 4 3 2 1- Cmody282.C-#include #define N 5void main() int /*/ aN,N /*/; int i,j; for(i=0;iN;i+) for(j=0;j=i/*/) aij=0; else /*/ aij=i+2-j /*/; printf(%3d,aij); printf(n); getch();三、填空题部分1.将程序Ccon241.C填写完整,该程序统计10到99之间个位是奇数且十位数为偶数的整数的个数。 例如:原字符串ssdax31被转换成SsDaX31- Ccon241.C-#include #include void main() int /*/ /*/; for(i=10;i=99;i+) sw=i/10; gw=i%10; if(/*/ /*/) count+; printf(nThe count=%d,count); getch();2.将程序Ccon252.C填写完整,使程序输出100到999之间所有能被7整除且左右对称的数。如:707就是满足条件的数。 - Ccon252.C-#include #include void main() /*/ /*/ int k; for(k=100; k=999; k+) find( k ); getch();void find(int m) int a,b; if(/*/ /*/) a=m%10; /*/ /*/ if(a=b) printf(%dn,m); 2.将程序Ccon262.C填写完整,使其中的函数chg能够将一个数组的元素循左移1个位置,第一个元素存到末尾。例如:数组元素为:1 2 3 4 5 6 7 8 9 10 则该数组元素循环左移后变为:2 3 4 5 6 7 8 9 10 1- Ccon262.C-#include #include void chg(/*/ /*/ ) int i,temp; temp=arr0; for(i=0; in-1; i+) arri=/*/ /*/ arrn-1=temp;void main() int a10,i; for(i=0;i10;i+) scanf(%d,&ai); chg(a,10); for(i=0;i10;i+) printf(%d ,ai); getch();1.将程序Ccon271.C填写完整,使程序输出如下图形: - Ccon271.C-#include #include void main() int i,j; i=0; while(i4) j=0; while(/*/ /*/) printf(* ); j+; printf(n); i+; for(i=3; /*/ /*/; i-) j=1; while(j=i) printf(* ); j+; printf(n); getch();2.将程序Ccon272.C填写完整,用递归算法求13+23+33+.+n3的值。- Ccon272.C-#include #include long int fun(int n) long int k; if(/*/ /*/ ) k=1; else k=/*/ /*/ return (k);void main() int i; printf(Input data:); scanf(%d,&i); if(i0) printf(Input data ereor!); else printf(Sum=%ldn,fun(i); getch();1.将程序Ccon281.C填写完整,该程序的功能是:用插入排序法对输入的10个整数按从大到小排序,输出排序结果。例如:输入:2 9 3 4 8 4 1 6 5 7输出:9 8 7 6 5 4 4 3 2 1 2.将程序Ccon282.C填写完整,使其中的函数chg能够求3*3矩阵的转置矩阵。例如:矩阵 1 2 3 4 5 6 7 8 9 转置后变成: 1 4 7 2 5 8 3 6 9 - Ccon281.C-#include #include void main() int i,j,k,x; /*/ /*/ printf(Enter 10 numbers:); scanf(%d,&x); a0=x; for(k=1; k=9; k+) scanf(%d,&x); for(i=0; ik; i+) if (aix) break; if(ik) for(j=k; /*/ /*/; j-) aj=aj-1; ai=x; for(i=0;i10;i+) printf(%d ,ai); getch();- Ccon282.C-#include #include int chg(/*/ /*/) int i,j,temp; for(/*/ /*/) for(j=i+1;j3;j+) temp=arrayij; arrayij=arrayji; /*/ /*/ void main() int i,j; int array33; printf(Input array:n); for(i=0;i3;i+) for(j=0; j3; j+) scanf(%7d,&arrayij); chg(array); printf(Reversed array:n); for(i=0;i3;i+) for(j=0; j3; j+) printf(%d ,arrayij); printf(n); getch();四、编程题部分2.打开程序Cprog242.C,完成其中函数fun(int a ,int n),实现将一维数组a各元素在数组中循环右移n个位置。例如:数组a各元素为:6 7 8 9 0 参数n=2时循环右移2个位置后数组各元素为:9 0 6 7 8- Cprog241.C-#include #include #include double fun(double x) /*/ /*/void main() double x; printf(Pleae input x:); scanf(%lf,&x); printf(nfun(%6.3lf) = %6.3lfn,x,fun(x); getch();- Cprog242.C-#include #include #define COL 5void fun(int a,int n) /*/ /*/void main() int arraCOL = 6,7,8,9,0; int i,j,n; printf(The array a is:n); for(i=0; i0): ); scanf(%d,&n); fun(arra,n); printf(Now The array a is:n); for(i=0; iCOL; i+) printf(%5d, arrai); printf(n); getch();1.打开程序Cprog251.C,完成其中的fun函数,该函数的数学表达式是: 例如:f(2.53)=2.4282.打开程序Cprog252.C,完成函数fun(int a ,int b ,float *f),实现如下功能:1)将数组a中下标为奇数且元素值个位数字为3的所有元素依次存放到数组b中;2)将数组a中下标为偶数的所有元素平均值存放在指针参数f所指向的变量中。- Cprog251.C-#include #include #include double fun(double x) /*/ /*/void main() printf(fun(2.53) = %6.3lfn, fun(2.53); getch();- Cprog252.C-#include #include #define N 13void fun(int a,int b,float *f) /*/ /*/void main() int aN = 40,23,33,8,32,63,2,9,16,-3,3,0,13; int bN=0; int i; float aver; printf(Array a:n); for(i=0;iN;i+) printf(%d ,ai); printf(n); fun(a,b,&aver); printf(Array b:n); i=0; while(bi) printf(%d ,bi+); printf(n); printf(Aver is :%.3f,aver); getch();1.打开程序Cprog261.C,完成其中的fun函数,该函数的数学表达式是:2.打开程序Cprog262.C,完成函数long fun(int a ,int x,int d,int n),实现如下功能:1)以参数x为首项,d为公差,产生等差数列的n项,并依次存于数组a中;2)函数返回值为所产生等差数列的n项和。- Cprog261.C-#inclu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论