历年广西区计算机二级考试C笔试试卷.doc_第1页
历年广西区计算机二级考试C笔试试卷.doc_第2页
历年广西区计算机二级考试C笔试试卷.doc_第3页
历年广西区计算机二级考试C笔试试卷.doc_第4页
历年广西区计算机二级考试C笔试试卷.doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

历年广西区计算机二级考试C笔试试卷选择题(50)1、c语言规定:在一个源程序中,main函数的位置 A A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后2、下面程序的运行结果是_。main()struct cmplx int x; int y; cnum21,3,2,7; printf(”%dn”,cnum0.y/cnum0.x *cnuml.x);A)0 B)1 C)3 D)63、表达式18/4*2/8值的数据类型为_A_A)int B)float C)double D)不确定4、以下不正确的叙述是 D 。A)在c程序中,逗号运算符的优先级最低B)在C程序中,APH和aph是两个不同的变量c)若a和b类型相同,在执行了赋值表达式a=b后b中的值将放入a中,而b中的值不变。D)当从键盘输入数据时,对于整型变量只能输入整型数值对于实型变量只能输入实型数值。5、以下程序的运行结果是_。#include stdio.h”main() struct date int year,month,day; today; printf(“%dn”,sizeof(struct date); A)6 B)8 C)10 D)126、以下说法正确的是 。A)输入项可以为一实型常量,如scanf(%f,3.5);B)只有格式控制,没有输入项,也能进行正确输入,如scanf(a=%d,b=%d”);C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf (“%4.2f,&f);D)当输入数据时,必须指明变量的地址,如scanf(“%f,&f);7、己知各变量的类型说明如下:int i=8,k,a,b;unsigned long w=55;double x=1.42,y=5.2;则以下符合c语言语法的表达式是_。A)a+=a-=(b=4)*(a=3) B)a=a*3=2C)x%(-3) D)y=float(i)8、已知ch是字符型变量,下面不正确的赋值语句是_。A)cha+b; B) ch0; C)ch7+9; D)ch5+99、有输入语句:scanf(a=%d,b=%d,c=%d,&a,&b,&c),为使变量a的值为1.b为3,c为2,从键盘输入数据的正确形式应当是_。A)132B)1,3,2C)a=l b=3c=2D)a=1,b=3,c=210、逻辑运算符两侧运算对象的数据类型_。A)只能是0或lB)只能是0或非0正数c)只能是整型或字符型数据D)可以是任何类型的数据11、一个c程序的执行是从 。A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结柬C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束12、以下程序的输出结果是_。main()int a=100,x=l0,y=20,ok1=5,ok2=0; if(x5) printf(%dn,m); else printf(%dn,m-);A) 4 B) 5 C)6 D)719、执行以下语句后b的值为_。int a=5,b=6,w=1,x=2,y=3,z=4;(a=wx)&(b=yz); A)5 B)0 C)6 D)120、若有定义:int a5;则a数组中首元素的地址可以表示为_。A)&a B)a+l C)a D)&a121、以下程序段_。x=-1;dox=x*x;while(!x);A)是死循环 B)循环执行二次C)循环执行一次 D)有语法错误22、若i为整型变量,则循环执行次数是_。for(i=2;i=0;) printf(%d,i-);A)无限次 B)0次 C)1次 D)2次23、以下有关宏替换的叙述不正确的是_。A)宏替换不占用运行时间 B)宏名无类型C)宏替换只是字符替换 D)宏名必须用大写字母表示24、下面程序的运行结果是_。#includemain() int y=10; doy-;while(-y); printf(%dn,y-); A)-1 B)1 C)8 D)025、下列四组选项中,均不含c语言关键字的选项是_。A)define B)getc C)include D)while IF char scanf go type printf case pow26、下面程序的运行结果是_。#includestdio.hvoid delch(char *s)int i,j;char *a;as;for(i0,j0;ai!=0;i+) if(ai0&ai9) sjai;j+; sj=0;main()char *itema34bc; delch(item); printf(n%s,item); A)abc B)34 C)a34 D)a34bc27、下列程序段不是死循环的是_。A)int i100; while(1) ii%100+1; if(il00)break ; B)for( ; ; );C)int k0; do+k; while(k=0);D)int s365; while(s); -s;28、根据定义和数据的插入方式,输入语句的正确形式为_。已有定义:float f1,f2;数据的输入方式:4.52 3.5A)scanf(%f,%f,&f1,&f2);B)scanf(%f%f,&f1,&f2);C)scanf(%3.2f %2.1f,&f1,&f2);D)scanf(%3.2f,%2.1f,&f1,&f2);29、在C语言中,引用数组元素时,其数组下标的数据类型允许是_ 。A)整型常量 B)整型表达式C)整型常量或整型表达式 D)任何类型的表达式30、下面程序的运行结果是#includemain() int num=0; while(num=2) num+; printf(%dn,num); A) 1 B)1 C)1 D)1 2 2 2 3 3 431、若有如下语句int x=3;doprintf(%dn,x-=2); while(!(-x);则上面程序段_。A)输出的是1 B)输出的是l和-2 C)输出的是3和0 D)是死循环32、以下能对一维数组a进行正确初始化的语句是_。A)int al0=(0,0,0,0,0); B) int al0=;C)int a=0; D) int a10=10*133、以下不正确的定义语句是_。A)double x52.0,4.0,6.0,8.0,10.0;B)int y50,1,3,5,7,9;C)char c1(1,2,3,4,5);D)char c2x10,xa,x8;34、下面程序_(每行程序前面的数字表示行号)1 main()2 3 float a0=0.0;4 int i;5 for(i=0;i3;i+) scanf(%d,&ai);6 for(i=1;iageC)(*p).age D) *p.age48、以下正确的说法是_。A)定义函数时,形参的类型说明可以放在函数体内B)return后边的值不能为表达式C)如果函数值的类型与返回值类型不一致,以函数值类型为准D)如果形参与实参的类型不一致,以实参类型为准49、以下不正确的说法为_。A)在不同函数中可以使用相同名字的变量B)形式参数是局部变量C)在函数内定义的变量只在本函数范围内有效D)在函数内的复合语句中定义的变量在本函数范围内有效50、在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为 A)charINTB)char=intC)charINTD)char=int=long intFLOATDOUBLE 51、以下程序的正确运行结果是_。main() int a=2; for(i=0;i3;i+) printf(%4d,f(a); f(int a) int b=0;static int c=3; b+;c+; return(a+b+c); A) 7 7 7B) 7 l0 13C) 7 9 117 8 952、以下正确的描述是_。A)c语言的预处理功能是指完成宏替换和包含文件的调用B)预处理指令只能位于c源程序文件的首部C)凡是C源程序中行首以#标识的控制行都是预处理指令D)C语言的编译预处理就是对源程序进行初步的语法检查53、请读程序:#define ADD(x) x+xmain() int m=1,n=2,k=3; int sum=ADD(m+n)*k; printf(sum=%d,sum);上面程序的运行结果是_。A)sum=9 B)sum=10 C)sum=12 D)sum=1854、若有语句int *point,a=4;和point=&a; 下面均代表地址的一组选项是_。A)a,point,*&a B)&*a,&a,*pointC)*&point,*point,&a D)&a,&*point,point55、以下错误的描述是_。函数调用可以 A)出现在执行语句中 B)出现在一个表达式中 C)做为一个函数的实参D)做为一个函数的形参56、已有定义int a=-2;和输出语句:printf(“%8Lx”,a);以下正确的叙述是 。A)整型变量的输出格式符只有%d一种B)%x是格式符的一种,它可以适用于任何一种类型的数据C)%x是格式符的一种,其变量的值按十六进制输出,但%8Lx是错误的D)%8Lx不是错误的格式符,其中数字8规定了输出字段的宽度57、若用数组名作为函数调用的实参,传递给形参的是_。A)数组的首地址B)数组第一个元素的值C)数组中全部元素的值D)数组元素的个数58、当运行以下程序时,从键盘输入Happy!(表示回车),则下面程序的运行结果是_。#include#includemain() char str10,*p=str; gets(p); printf(“%dn”,stre(p); stre(char str) int num=0; while(*(str+num)!=0) num+; return(num); A)7 B)6 C)5 D)1059、下面有关for循环的正确描述是_。A)for循环只能用于循环次数已经确定的情况B)for循环是先执行循环体语句,后判断表达式c)在for循环中,不能用break语句跳出循环体D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来60、设有如下定义:struct skint n;float xl;data,*p;若要使p指向data中的n域,正确的赋值语句是_。A)p=&data.n;B)*p=data.n;C)p=(struct sk *)&data.n;D)p=(struct sk *)data.n;61、若有以下定义和语句,则对a数组元素的正确引用为_。int a23,(*p)3;p=a,A)(p+1)0 B)*(*(p+2)+1) C)*(pl+1) D)p1+262、若有以下说明和语句:char *langugeF0RTRAN“,BASIC”,PASCAL,JAVA”,C”;char *q; qlanguage+2;则语句printf(”%sn“,*q);_。A)输出的是language2元素的地址B)输出的是字符串PASCALC)输出的是1anguage2元素的值,它是字符串PASCAL的首地址D)格式说明不正确,无法得到确定的输出63、已有定义int x;float y;且执行scanf(%3d%f,&x,&y);语句,若从第一列开始输入数据12345 678,则y 的值为_。A)无定值 B)45.000000 C)678.000000 D)123.00000064、下面程序的运行结果是_。#includemain() static char a=Language”,b=programe; char *p1,*p2; int k; p1=a; p2=b; for(k=0;k=7;k+) if(*(p1+k)=*(p2+k) printf(%c,*(p1+k); A)gae B)ga C)Language D)有语法错65、表达式 0xl3&0xl7的值是_。A)0x17 B)0xl3 C)0xf8 D)0xec66、若已定义int a5;下面对(1),(2)两个语句的正确解释是_。(1)int *p&a; (2)*p=a;A)语句(1)和(2)中的,p含义相同,都表示给指针变量p赋值B)(1)和(2)语句的执行结果,都是把变量a的地址值献给指针变量pC)(1)在对p进行说明的同时进行初始化,使p指向a (2)将变量a的值赋给指针变量pD)(1)在对P进行说明的同时进行韧始化 (2)将变量a的值赋于*p67、若w、x、y、z、m均为int型变量,则执行下面语句后的m值是w=1; x=2; y=3; z=4;m=(wX)?W:X;m=(mY)?M:Y;m=(mZ)?M:Z;A)l B)2 C)3 D)468、以下程序的运行结果是_。typedef unionlong a2; int b4; char c8; TY;TY our;main()printf(”%dn”,sizeof(our);A)32 B)16 C)8 D)2469、请读程序片断:int x20;prtntf(”%dn”, x);上面程序片段的输出结果是_。A)02 B)-20 C)-21 D)-1170、当顺利执行了文件关闭操作时,fclose函数的返回值是_。A)-1 B)TURE C)0 D)171、系统的标准输入文件是指_。A)键盘 B) 显示器 c) 软盘 D)硬盘72、根据下面的定义,能打印出字母M的语句是_。struct personchar name9; int age; struct person classl0=John”,17,Paul,19,Mary,18,adam,16;A)printf(%cn,);B)printf(%cn,1);C)printf(%cn,1);D)printf(%cn,0);73、若有以下程序段:int x=1,y=2;x=xy;y=yx;x=xy;则执行以上语句后x和y的值分别是_。A)x=l,b=2 B)x=2,y=2 C)x=2,y=1 D)x=1,y=1给出结果,说明理由及以上语句可以起什么作用,给出等价的其它表述方法。74、若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是_。A)ab+ B)wb+ C)rb+ D)ab填空题(30)1、有四个数a,b,c,d,要求按从大到小的顺序输出。请在【】内填入正确内容。main() int a,b,c,d,t ; scanf(“%d%d%d%d,&a,&b,&c,&d); if(a if(【1】)t=c;c=d; d=t; if(a if(【2】)t=b;b=c;c=t; if(b if(c printf(“%d%d%d%dn”,a,b,c,d);2、下面程序是从键盘输入一个三位数的学号,然后输出学号中百位数字是3的学号,输入0时结束循环。请在【】内填入正确内容。#includemain() long num; scanf(%ld,&num); doif( 【1】 ) printf(%ld,num); scanf(%ld,&num); while( 【2】 ); 3、 a500 r0% 500a1000 r5% 1000a2000 r8% 2000a3000 r10% 3000a r15%以下程序对输入的一个奖金数,求税率金税和应交税款以及实得奖金数(扣除奖税后)。题中r代表税率,t代表税款,b代表实得奖金数。请在【】填入正确内容。 main() float a,r,t,b; int c; scanf(”%f,&a);if(a3000)c6e1se c【1】; switch(c) case 0:r=0;break; case 1:r=0.05;break; case 2: case 3:【2】;break; case 4: case 5:r=0.1;break; case 6:r=0.15;break;t=a*r; b=a-t;printf(r=%f,t=%f,b=%f,r,t,b)4、下面程序的功能是计算l至10之间的奇数之和及偶数之和。请在【】内填入正确内容#includemain() int a,b,c,i; a=c=0; for(i=0;ire,t-im);6、下面程序以每行4个数据的形式输出a数组,请填空。#define N 20main() int aN,i; for(i=0;i for(i=0;iN;I+) if(【2】)【3】 printf(%3d,ai); printf(%n);7、以下程序对输入的两个整数,按从大到小顺序输出。请在【】填入正确内容。main()int x,y,z;scanf(%d,%d,&x,&y);if(【1】) (z=x;【2】 printf(%d,%d,x,y);8、下面程序的功能是将小写字母变成对应大写字母后的第二个字母。其中y变成A,z变成B。请在【】内填入正确内容。#includestdio.hmain() char c; while(c=getchar()!=0) if(ca&cz) 【1】; if(cZ&cZ+2) 【2】; printf(%c,c); 9、下面程序段的运行结果是_ 。char s20=abcd;char *sp=s;sp+;puts(strcat(sp,”ABCD”);10、设数组a中的元素均为正整数,以下程序是求a中偶数的个数和偶数的平均值。请填空。main()(int a101,2,3,4,5,6,7,8,9,10; int k,s,i; float ave 5; for(ksiO;i10;i+) if(ai%2!0)【1】; s+【2】; k+; if(k!=0) ave=s/k;printf(%d,%fn,k,ave);11、下面程序段是把从终端法入的一行字符作为字符串放在字符数组中,然后输出。请填空。int i;char s80,*p;for(i=0;i79;i+) sigetchar(); if(si=n) break; si=【1】;p=【2】;while(*p) putchar(*p+);12、以下程序用来按学生姓名查询其排名和平均成绩。查询可连续进行,直到键入0时结束,请在【】内填入正确内容。#include#includl#define NUM 4struct studetint rank; char *name; float score, ;【1】str=3,Tom,89.3, 4,Mary,78.2, 1,Jack,95.1, 2,Jim,90.6, ;main() char strl0, int i; do printf(Enter a name:); scanf(“%s”,str); for(i=0;i=NUM) printf(Not foundn”);while(strcmp(str,0)! =0),13、以下程序是选出能被3整除且至少有一位是5的两位数,打印出所有这样的数及其个数。请在【】内填入正确内容。sub(int k,int n)int al,a2; a2=【1】; a1=k-【2】;if(k%3=0&a2=5)|(k%3=0&a1=5) printf(%d,k); n+; return n; else return -1;main() int =0,k,m; for(k=10,kb/n.a*+pn-b的值是【1】,表达式(*pn).a+pn-f的值是【2】。15、有已排好序的字符串a,下面的程序是将字符串s中的每个字符按a中元素的规律插入到a中。请在【】内填入正确内容。#includemain() char a20=cehiknqtw; char s=fbla; int i,k,j; for(k=0;sk!=0;k+) j=0; while(sk=aj&aj!=0) j+; for(【1】) 【2】; aj=sk; puts(a); 编程题:任意的10个实数,按由大到小的顺序排列后,输入出这十个数。main() int i,j; float temp a10; for(i=0;i10;i+) scanf(“%d”,&ai); for(i=0;i9;i+) /*排序开始*/ for(j=i+1;j10;j+) if (aiAJ) temp=ai; /*交换ai与aj*/ ai=aj; aj=temp; for(i=0;i10;i+) /*输出排序结果*/ printf(%.2ft,ai); printf(“n”); spring”、”summer”、”autumn”、”winter”这四个字符串按字典顺序排序后输入。#includemain()char *temp,*p4,a420=“spring”,”summer”,”autumn”,”winter”;int i,jfor(i=0;i4;i+) piai; /*指针指向字符串*/for(i=0;i3;iq-+) /*排序*/ for(j=i+1;j0) temp=pi; pi=pj; pj=temp; for(i=0;i4;i+) /*输出结果*/ printf(“%st”,pi);printf(“n”);为有10个元素的数组,编一程序,把任意10个数读入数组,找出其中最大值和最小值,输入出两者的值及相应的下标。main() int a10,max,min,i,tp,k,g,*p=a; for(i=0;i10;i+) scanf(%d,p+i); max=min=*p; for(i=0;imax) max=*(p+i); k=i; else if(*(p+i)MIN) min=*(p+i); g=i; printf(max=%dtNO.=%dn,max,k);printf(min=%dtNO.=%dn,min,g);商人想批发一些水果,其种类、单价和数量如下:水果名 单价 数量 结构数组元素grape 62 4 sp0apple 53 8 sp1pear 29 7 sp2orange 35 5 sp3编程求各类水果各需要花费多?main() int i,total=0; struct men char fruit 15; /*水果名数组*/ int cost; /*每箱价格*/ int num; /*所购箱数*/ struct men sp4; /*定义结构数组*/ printf(FRUIT?COST?NUM?n); for(i=0;i4;i+)scanf(%s%d%d,spi.fruit,&spi.cost,&spi.num); total+=spi.cost*spi.num; printf(%-10s%-10s%-10sn,FRUIT,COST,NUM); for(i=0,i4,i+) printf(%-10s%-10d%-6dn,spi.fruit,spi.cost,spi.num); printf(total refer money:%-6dn,total); 23矩阵 的转置矩阵 。main() int a23=1,2,3,4,5,8; int b32,i,j; printf(array a:n); for(i=0;i=1;i+) for(j=0;j=2;j+) printf(%5d,aij); bji=aij; printf(n); printf(array b:n); for(i=0;i=2;i+) for(j=0;j=1;j+) printf(%5d,bij); printf(n); 两个磁盘文件“A”和“B”,各存放一行字母,现将这两个文件中的信息合并(按字母顺序排序),输出到一个新文件“C”中去。#include main() FILE *fp; int i,j,n,ni; char c160,t,ch; if(fp=fopen(A,r)=NULL) printf(Cant open the A .n ); exit(0); printf(n the content of A :n); for(i=0;(ch=fgetc(fp)!=EOF;i+) ci=ch; putchar(ci); fclose(fp); ni=i; if(fp=fopen(B,r)=NULL) printf(Cant open the B .n ); exit(0); printf(n the content of B :n); for(i=ni;(ch=fgetc(fp)!=EOF;i+) ci=ch; putch

温馨提示

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

评论

0/150

提交评论