计算机等级考试C语言笔试复习题一、单选题:(请选择一个正确结果)1.下列语句的输出为()int x=-1;printf("%d,%u,%O",x,x,x,);A)-1,65535,177777 B)-1,-1,-1C)-1,32767,-17777 D)-1,32768,1777772.若x,y为实数类型的变量,要判断x,y相等,最好使用下列关系表达式()A)x= =y; B)x-y= =0;C)fabs(x-y) 〈1e-8; D)labs(x-y)〈1e-8;3.若有以下的定义、说明和语句,则值为101的表达式是()。
struct cw{int a ;int *b;} *p;int x0[]={11,12},x1[]={31,32};static struct cw x[2]={100,x0,300,x1};p=x;A)*p-〉b B)p-〉aC)+ +(p->a) D)(p+ +)-〉a4.若有以下定义和语句,则输出结果是()。
char *sp="\t\b\\\0English\n";printf("%d", strlen(sp));A) 12 B)3 C)17 D)135.有如下程序void main(){ int x=23;do{ printf("%d",x--);}while(!x);}该程序的执行结果是()A)321 B)23C)不输出任何内容D)陷入死循环6.若已定义x和y为double类型,则表达式x=2, y=x+10/4的值是()A)2 B)4 C)4.0 D)4.57.要将一个整数12000分别以ASCII码文件和二进制文件形式存放,各自所占的存储空间数分别是()字节。
A)5和2 B)2和5 C)2和2 D)5和58.对于类型相同的两个指针变量之间,不可进行的运算是()A)= = B)= C)+ D)-9.s izeof(’a’+10)的值为()类型。
A)int B)float C)double D)char10.若有定义int a=3; 则执行完printf("%d",-a--);语句后a的值为()A)-3 B)2 C)-2 D)311.若有float x=2.5;y=4.7;int a=7; 则表达式x+a%3*(int) (x+y)%2/4的值为()A)4.0 B)3.0 C)2.75 D)2.512.语句printf("s=%-5.3s","computer"); 的输出结果是()A)s= com B)s=com C)s= ter D)s=ter 13.int a=3,b=4,c=5; 执行完表达式a+ +>--b&&b++>c--&&++c后,a,b,c的值分别为()A)3 4 5 B)4 3 5 C)4 4 4 D)4 4 514.int x=3,y=1; 则条件表达式x>y?1:2.3的值为()A)1 B)1.0 C)2.3 D)215.若有定义int i=2,a[10],*p=&a[i]:则与*p++等价的是()A)a[i+ +] B)a[i]+ + C)a[i] D)a[+ +i]16.以下程序的输出结果是():void main( ){ int a=5,*p1,**p2;p1=&a,p2=&p1;(*p1)+ +;printf("%d\n",**p2);}A)5 B)4 C)6 D)不确定17.以下程序的输出结果是()int x=3,y=4;void main( ){ int x,y=5;x=y+ +;printf("%d",x);}A)3 B)4 C)5 D)618.若#include后面的文件名用双引号括起来,寻找被包含文件的方式是()A)先按系统设定的标准方式查找,再在当前目录中查找B)先在当前目录中查找,再按系统设定的标准方式查找C)只在当前目录中查找D)只按系统设定的标准方式查找19.程序设计的步骤一般分为:分析问题、构造模型、设计与描述算法、编写程序、调试程序和()A)数据设计B)算法分析C)编制程序说明文档D)编译20.表达式11&10的结果用二进制表示为()。
A)11 B)3 C)1 D)1021.结构化程序语言的三种基本结构是()(A)顺序结构、选择结构、循环结构(B)递归结构、循环结构、转移结构(C)嵌套结构、递归结构、顺序结构(D)循环结构、转移结构、顺序结构22.若有以下说明和语句,请选出哪个对c数组元素的正确引用()int c[4][5],(*cp)[5]; cp=c;(A)cp+1 (B)(cp+3) (C)*(cp+1)+3 (D)*(*cp+2) 23.设有如下的程序段:char str[ ]="hello"; char *ptr; ptr=str;执行上面的程序段后,*(ptr+5)的值为( )。
(A)‘o' (B) '\0' (C)不确定的值 (D) 'o'的地址24.执行下面的程序段后,B 的值为( )。
int x=35; char z='A'; int B;B=((x&15)&&(z<'a')); (A)0(B)1(C)2(D)325.以下程序的输出结果为( )。
#include<stdio.h> main() { int i;for(i=0;i<10;i++); printf("%d",i);}(A)0 (B)123456789 (C)0123456789 (D)10 26.以下程序的输出结果是( )。
#include<stdio.h> main(){ int i=010,j=10;printf("%d,%d",++i,j--); } (A)11,10 (B)9,10(C)010,9 (D)10,927.表达式k=(12<10)?4:1?2:3的值为( )。
(A)1 (B)2(C)3(D)428.有一C 语言源程序如下:main(){ int a,b=-1;scanf("%d",&a);if(a)if(a>0)b=1;else b=0; }该程序所表示的数学函数关系是( )(A)⎪⎩⎪⎨⎧>=<-=)0(1)0(0)0(1a a a b(B) ⎪⎩⎪⎨⎧<>=-=)0(1)0(0)0(1a a a b (C) ⎪⎩⎪⎨⎧><=-=)0(1)0(0)0(1a a a b(D) ⎪⎩⎪⎨⎧=><-=)0(1)0(0)0(1a a a b29.在下列程序中,调用f(8)的值是( )int f(int n){ if(n= =1)return(1); else if(n= =2) return(2); else return(f(n-1)+f(n-2)); } (A)13(B)21(C)55(D)3430.在执行程序china.exe 时,若输入的命令行为:china enlish Beijing ,则程序执行结果为( )。
#include<stdio.h>void main(int argc, char *argv[]){ while(argc>1){ printf("%c",**++argv);argc--;}} (A)eB(B)ceB(C)china enlish Beijing (D)enlish Beijing31.如a 为int 型,则与表达或a 等价的C 语言关系表达式是( )(A )a>0 (B )a!=0(C)a= =0 (D)a>032.循环语句for(a=0,b=0;(b!=45)||(a<5);a++);的循环次数是( )(A)4(B)3(C)5(D)无数多次33.一个C 语言程序是由( )组成。
(A)一个函数 (B)一个或若干个函数 (C)一个过程 (D)一个过程或若干个过程 34.设有字符数组a ,则正确的输入语句是( )。
(A)gets('a');(B)scanf("%c",a); (C)scanf("%s",a);(D)gets("a");35.如果程序中有static char c ;则编译程序会对其自动设置初值为( )。
(A) '\n' (B) "\n" (C)0 (D) '\0'36.C 语言用( )表示逻辑真值。
(A)true(B)T(C)整型值0(D)非0整型值整数137.已知:int *p;使用“p=malloc(sizeof(int));”语句动态申请int 型的存储单元,应当使用( )。
(A)int (B)int* (C)(*int) (D)(int*) 38.在C 函数中,局部变量的隐含存储类型是( )。
(A)auto(B)static(C)register(D)extern39.C 语言中,以下叙述中错误的是( )。
(A)同一程序中,全局变量和局部变量可以同名 (B)局部变量的作用域被限定在其所定义的局部范围中(C)同一程序中,全局变量和局部变量不能同名(D)全局变量的作用域从定义处开始到本源程序文件结束40.在c语言中,函数调用时如果相应的形参和实参都是简单变量,则主调函数和被调函数之间传递数据的方式是( )。
(A)单向地址值传递(B)双向地址值传递(C)单向数值传递(D)双向数值传递41.有定义:int a[5][4],*p=a[0];,则*(p+2*4+3)等于( )。
(A)a[2][0] (B)a[2][1] (C)a[2][2](D)a[2][3]42.C语言中,一个函数调用语句为fun((el,e2,e3),(e4,e5),e6);,其实参个数为( )。
(A)3个(B)4个(C)5个(D)6个43.有如下程序,该程序的输出结果是( )main( ){ int x=1,a=0,b=0;switch(x){case 0;b++;case 1:a++case 2:a++;b++}(A)a=2,b=1 (B)a=l,b=l(C)a=l,b=0 (D)a=2,b=244.在执行语句if((x=y=2)>=x&&(x=5))y*=x;后变量x、y的值应分别为( )。