




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
广西区计算机等级二级试题 中华IT学院 【大 中 小】 2006年7月25日 选择题(50) 1、c语言规定:在一个源程序中,main函数的位置 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)6 3、表达式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)12 6、以下说法正确的是 。 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=2 C)x%(-3) D)y=float(i) 8、已知ch是字符型变量,下面不正确的赋值语句是_。 A)cha+b; B) ch0; C)ch7+9; D)ch5+9 9、有输入语句:scanf(a=%d,b=%d,c=%d,&a,&b,&c),为使变量a的值为1.b为3,c为2,从键盘输入数据的正确形式应当是_。 A)132 B)1,3,2 C)a=l b=3c=2 D)a=1,b=3,c=2 10、逻辑运算符两侧运算对象的数据类型_。 A)只能是0或l B)只能是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)7 19、执行以下语句后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)1 20、若有定义:int a5;则a数组中首元素的地址可以表示为_。 A)&a B)a+l C)a D)&a1 21、以下程序段_。 x=-1; do x=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、下面程序的运行结果是_。 #include main() int y=10; doy-;while(-y); printf(%dn,y-); A)-1 B)1 C)8 D)0 25、下列四组选项中,均不含c语言关键字的选项是_。 A)define B)getc C)include D)while IF char scanf go type printf case pow 26、下面程序的运行结果是_。 #includestdio.h void 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)a34bc 27、下列程序段不是死循环的是_。 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.5 A)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、下面程序的运行结果是 #include main() int num=0; while(num=2) num+; printf(%dn,num); A) 1 B)1 C)1 D)1 2 2 2 3 3 4 31、若有如下语句 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*1 33、以下不正确的定义语句是_。 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;i10;i+) a0=a0+ai; 7 printf(%fn,a0; A)没有错误 B)第3行有错误 C)第5行有错误 D)第7行有错误 35、下面程序段的运行结果是_。 char c5=a,b,0,c,0; printf(%s,c); A)ab B)ab C)ab c D)abc 36、下面四个选项中,均是合法的用户标识符的选项是_。 A)A B)float C)b_a D)_123 P_O 1ao goto temp do _A int INT 37、以下正确的函数形式是_。 A)double fun(int x,int y) z=x+y,return z;) B)fun(int x,y) int z; return z; C)fun(x,y) int x,y; double z; z=x+y;return z; D)double fun(int x,int y) double z; z=x+y;return z; 38、若运行以下程序时,从键盘输入3.6 2.4 (表示回车),则下面程序的运行结果是_。 #includemathh #includestdioh main() float x,y,z; scanf(%f%f,&x,&y); z=x/y; while(1) if(fabs(z)1.0) x=y;y=z;z=x/y; else break; printf(%fn,y); A)1.500000 B)1.600000 C)2.000000 D)2.400000 39、若二维数组a有m列,则计算任一元素aij在数组中位置的公式为_。(假设a00位于数组的第一个位置上。) A)i*m+j B)j*m+i C)i*m+j-1 D)i*m+j+1 40、已知int x10,y20,z30;以下语句执行后x,y,z的值是 if(xy) z=x;x=y;y=z; A)x10,y20,z30 B)x20,y30,z30 C)x20,y30,z10 D)x20,y30,z20 41、以下叙述不正确的是 。 A)一个c源程序可由一个或多个函数组成 B)一个c源程序必须包含一个main函数 C)c程序的基本组成单位是函数 D)在c程序中,注释说明只能位于一条语句的后面42、若有定义:int *p4;则标识符p_。 A)是一个指向整型变量的指针 B)是一个指针数组名 C)是一个指针,它指向一个含有四个整型元素的一维数组 D)说明不合法 43、以下关于运算符优先顺序的描述中正确的是。 A)关系运算符算术运算符赋值运算符逻辑与运算符 B)逻辑与运算符关系运算符算术运算符赋值运算符 C)赋值运算符逻辑与运算符关系运算符算术运算符 D)算术运算符关系运算符赋值运算符逻辑与运算符 44、若有说明:int a34(0);则下面正确的叙述是_。 A)只有元素a00可得到初值0 B)此说明语句不正确 C)数组a中各元素都可得到初值,但其值不一定为0 D)数组a中每个元素均可得到初值0 45、下述对C语言字符数组的描述中错误的是_。 A)字符数组可以存放字符串 B)字符数组的字符串可以整体输入、输出 C)可以在赋值语句中通过赋值运算符字符数组整体赋值 D)不可以用关系运算符对字符数组中的字符串进行比较 46、判断字符串a和b是否相等,应当使用_。 A)if(a=b) B)if(a=b) C)if(strcpy(a,b) D)if(strcmp(a,b) 47、若有以下说明和语句: struct student int age; int num; std,*p; p=&std; 则以下对结构体变量std中成员age的引用方式不正确的是_。 A)std.age B) p-age C)(*p).age D) *p.age 48、以下正确的说法是_。 A)定义函数时,形参的类型说明可以放在函数体内 B)return后边的值不能为表达式 C)如果函数值的类型与返回值类型不一致,以函数值类型为准 D)如果形参与实参的类型不一致,以实参类型为准 49、以下不正确的说法为_。 A)在不同函数中可以使用相同名字的变量 B)形式参数是局部变量 C)在函数内定义的变量只在本函数范围内有效 D)在函数内的复合语句中定义的变量在本函数范围内有效 50、在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列 顺序为 A)charintlong int=floatdouble B)char=intlong int=floatdouble C)charintlong intfloat=double D)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 7 B) 7 l0 13 C) 7 9 11 7 8 9 52、以下正确的描述是_。 A)c语言的预处理功能是指完成宏替换和包含文件的调用 B)预处理指令只能位于c源程序文件的首部 C)凡是C源程序中行首以#标识的控制行都是预处理指令 D)C语言的编译预处理就是对源程序进行初步的语法检查 53、请读程序: #define ADD(x) x+x main() 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=18 54、若有语句int *point,a=4;和point=&a; 下面均代表地址的一组选项是 _。 A)a,point,*&a B)&*a,&a,*point C)*&point,*point,&a D)&a,&*point,point 55、以下错误的描述是_。 函数调用可以 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 #include main() 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)10 59、下面有关for循环的正确描述是_。 A)for循环只能用于循环次数已经确定的情况 B)for循环是先执行循环体语句,后判断表达式 c)在for循环中,不能用break语句跳出循环体 D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 60、设有如下定义: struct sk int 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)输出的是字符串PASCAL C)输出的是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.000000 64、下面程序的运行结果是_。 #include main() 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)0xec 66、若已定义int a5;下面对(1),(2)两个语句的正确解释是_。 (1)int *p&a; (2)*p=a; A)语句(1)和(2)中的,p含义相同,都表示给指针变量p赋值 B)(1)和(2)语句的执行结果,都是把变量a的地址值献给指针变量p C)(1)在对p进行说明的同时进行初始化,使p指向a (2)将变量a的值赋给指针变量p D)(1)在对P进行说明的同时进行韧始化 (2)将变量a的值赋于*p 67、若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)4 68、以下程序的运行结果是_。 typedef unionlong a2; int b4; char c8; TY; TY our; main() printf(”%dn”,sizeof(our); A)32 B)16 C)8 D)24 69、请读程序片断: int x20; prtntf(”%dn”, x); 上面程序片段的输出结果是_。 A)02 B)-20 C)-21 D)-11 70、当顺利执行了文件关闭操作时,fclose函数的返回值是_。 A)-1 B)TURE C)0 D)1 71、系统的标准输入文件是指_。 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(ab)t=a;a=b;b=t; if(【1】)t=c;c=d; d=t; if(ac)t=a;a=c;c=t; if(【2】)t=b;b=c;c=t; if(bd)t=b;b=d;d=t; if(cd)t=c;c=d;d=t; printf(“%d%d%d%dn”,a,b,c,d); 2、下面程序是从键盘输入一个三位数的学号,然后输出学号中百位数字是3的学号,输入0时结束循环。请在【】内填入正确内容。 #include main() 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)c6 e1se 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之间的奇数之和及偶数之和。请在【】内填入正确内容 #include main() int a,b,c,i; a=c=0; for(i=0;ire,t-im); 6、下面程序以每行4个数据的形式输出a数组,请填空。 #define N 20 main() int aN,i; for(i=0;iN;i+) scanf(%d,【1】); 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.h main() 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 4 struct studet int 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中。请在【】内填入正确内容。 #include main() 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”这四个字符串按字典顺序排序后输入。 #include main() char *temp,*p4,a420=“spring”,”summer”,”autumn”,”winter”; int i,j for(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 sp0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电缆回收避坑知识培训课件
- 湖南省娄底市涟源市2022-2023学年九年级上学期期中化学试题(含答案)
- 戏剧教学法在小学英语课堂教学中的应用
- 电煤知识培训总结报告课件
- 高空安全知识培训课件教学
- 本溪初二语文考试题目及答案
- 高热惊厥讲解课件
- Penicillin-V-b-sulfoxide-d3-生命科学试剂-MCE
- 北华大学日语考试题库及答案
- 保育理论考试考那些题及答案
- GB/T 12234-2019石油、天然气工业用螺柱连接阀盖的钢制闸阀
- 全套教学课件《公共艺术(音乐)》
- 3.1《太阳系大家庭》课件
- 高中数学《基于问题链的数学教学探索》课件
- (卓越绩效)质量奖申报材料
- 同创伟业投资分析报告(附358家被投企业介绍)
- 数学-四年级(上册)-人教版-《亿以上数的认识及读法》教学课件
- 政治经济学ppt课件汇总(完整版)
- 消费者行为学全书电子教案完整版课件
- 互联网保险概述课件
- 怎样做一名合格的高校中层领导干部( 54页)
评论
0/150
提交评论