福建省c语言考试试题c题库选择题答案06-08(最新).doc_第1页
福建省c语言考试试题c题库选择题答案06-08(最新).doc_第2页
福建省c语言考试试题c题库选择题答案06-08(最新).doc_第3页
福建省c语言考试试题c题库选择题答案06-08(最新).doc_第4页
福建省c语言考试试题c题库选择题答案06-08(最新).doc_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

2006年6月份2008年1月份C语言等级考试模拟试卷集成(选择题部分)一、选择题 1、关于C语言数据类型的叙述,正确的是(C)。A)枚举类型不是基本类型B)数组不是构造类型C)变量必须先定义后使用D)不允许使用空类型 2、下面关于C语言用户标识符的描述,正确的是(D)。A)不区分大小写B)用户标识符不能描述常量C)类型名也是用户标识符D)用户标识符可以作为变量名 3、下面叙述正确的是(B)。A)2/3与2.0/3.0等价B)(int)2.0/3与2/3等价C)+5与6等价 D)A与”A”等价 4、已知char a;使用scanf()函数输入一个字符给变量a,不正确的函数调用是(B)。A)scanf(“%d”,&a); B)scanf(“%lf”,&a);C)scanf(“%c”,&a); D)scanf(“%u”,&a); 5、下面叙述中,(A)不是结构化程序设计三种基本结构的共同特点。A)先判断后执行 B)单入口,单出口C)程序中没有执行不到的语句 D)无死循环 6、已知int a=3, b=5; 则表达式 a & ! b 的值为(C)。A)3 B)2 C)0 D)1 7、已知char a=R; 则正确的赋值表达式是(A)。A)a=(a+)%4 B)a+2=3 C)a+=256- D)a=078 8、以下的语句中,无内嵌的if语句是(B)。A)if(x= =y) x+=y; B)if(xy & x!=y); x+=y;C)if(x!=y)scanf(“%d”,&x);else scanf(“%d”,&y);D)if(xy) x+;y+; 9、设有整型变量x,下述语句(B)不会出现死循环。A)for( ; ; x+=1) B)for( ; (x=getchar()!=n; ) ;C)while(1) x+ ;D)for(x=10; ;x-) ; 10、下列数组声明中,正确的是(A)。A)int a5=0; B)int a=0 1 2;C)int a5=0; D)int a ; 11、以下数组定义中,正确的是(D)。A)int a23=1,2,3,4,5,6,7; B)int a=1,2,3,4,5,6,7,8,9;C)int a2=1,2,3,4,5,6; D)int a4=6; 12、设有如下数组定义:char str8=“FuJian”;则分配给数组str的存储空间是(C)字节。A)6 B)7 C)8 D)9 13、以下程序的运行结果是(A)。int fun(int array44)int j; for(j=0;j4;j+) printf(“%2d”,array2j); printf(“n”);main()int a44=0,1,2,0,1,0,0,4,2,0,0,5,0,4,5,0; fun(a);A)2 0 0 5 B)1 0 0 4C)0 1 2 0 D)0 4 5 0 14、若有以下宏定义,#define MOD(x,y) x%y则执行以下程序段后,z的值是(D)。int z,a=15,b=100;z=MOD(b,a);A)100 B)15C)11D)10 15、对于基类型相同的两个指针变量之间,不能进行的运算是(C)。A)next=head-next;head-next=p; B)head-next=p;p-next=head-next;C)p.next=head.next;head.next=p;D)(*head).next=p;(*p).next=(*head).next; 19、设有如下定义:typedef int *INTEGER;INTEGER p,*q;则(C)是正确的叙述。A)p是int型变量 B)q是基类型为int的指针变量C)p是基类型为int的指针变量 D)程序中可用INTEGER代替int类型名 20、以下程序的可执行文件名是file.exe。main()int argc;char *argv;int i; for(i=2;iargc;i+) printf(“%s%c”,argvi,(iargc-1)? : n);在DOS命令行输入:file My C Language and Programming,其输出结果是(A)。A)C Language and Programming B)My C Language and ProgrammingC)MyCLanguageandProgramming D)file My C Language and Programming 21、在C语言源程序中,以下叙述正确的是(C)。A)main函数必须位于文件的开头 B)每行只能写一条语句C)程序中的一个语句可以写成多行 D)每个语句的最后必须有点号 22、下面关于算术运算符的叙述,错误的是(A)。A)其运算对象不包含函数B)%(模运算符)的运算对象只能为整型量C)算术运算符的结合方向是“自左至右”D)自加和自减运算符的结合方向是“自右至左” 23、下面叙述中,(A)不是结构化程序设计中的三种基本结构之一。A)数据结构 B)选择结构C)循环结构 D)顺序结构 24、已知 double a=5.2; 则正确的赋值表达式是(A)。A)a+=a-=(a=4)*(a=3) B)a=a*3=2C)a%3 D)a=double(-3) 25、逻辑运算符的优先级依次为(C)。A)| & ! B)& | !C)! & | D)! | & 26、对于整型变量x,与while(!x) 等价的是(B)。A)while(x!=0) B)while(x= =0)C)while(x!=1) D)while( x) 27、下列数组声明中,正确的是(A)。A)int a10; B)int n=10,an;C)int N=10;int aN;D)int n;scanf(“%d”,&n);int an; 28、有如下定义:char str6=a,b,0,d,e,f;则语句:printf(“%s”,str);的输出结果是(D)。A)ab B)abdefC)ab0 D)ab 29、执行以下程序段的输出结果是(B)。int a=10,*p=&a;printf(“%d”,+*p);A)10 B)11C)变量a的地址 D)变量a的地址+1 30、若有以下程序段,且0i4,0jnext=p-next;free(p) B)head-next=p;p-next=head-next;free(p);C)free(p);head-next=p;p-next=head-next;D)free(p);head-next=p-next; 32、假定已有如下变量说明和枚举定义:char ch;int j,k;enum daysun,mon,tue,wed,thu,fri,sat;int asat判断下列语句是否符合语法规则,结果是(C)。char a; /*语句1 */j+k=j; /*语句2 */if(amon0) j+; /*语句 3 */A)语句2错误,其它正确 B)语句1正确,其它错误C)语句3正确,其它错误 D)语句1错误,其它正确 33、以下(D)是正确的常量。A)E-5 B)1E5.1C)a12 D)32766L 34、标准函数fgets(s,n,f)的功能是(B)。A)从文件f中读取长度为n的字符串存入指针s所指的内存B)从文件f中读取长度不超过n-1的字符串存入指针s所指的内存C)从文件f中读取n个字符串存入指针s所指的内存D)从文件f中读取长度为n-1的字符串存入指针s所指的内存 35、关于C语言的源程序的叙述中,错误的是(C)。A)C语言的源程序由函数构成B)main函数可以书写在自定义函数之后C)必须包含有输入语句D)一行可以书写多个语句 36、下面叙述正确的是(A)。A)强制类型转换运算的优先级高于算术运算B)若a和b是整型变量,(a+b)+是合法的C)A*B是不合法的D)”A”+”B”是合法的 37、设有以下语句,则(D)是对a数组元素的不正确引用,其中0inext=&c;p-next=head-next; D)(*head).next=p; (*p).next=&b; 48、设有如下定义: typedef int *INTEGER; INTEGER p,*q; 则(C)是正确的叙述。A)p是int型变量 B)q是基类型为int的指针变量C)p是基类型为int的指针变量D)程序中可用INTEGER代替int类型名 49、已知int a=R; 则正确的表达式是(A)。A)a%10 B)a=int(3e2)C)2*a=a+ D)a=a+a=a+3 50、C语言对if嵌套语句的规定:else总是与(B)配对。A)第一个if B)之前最近的且尚未配对的ifC)缩进位置相同的if D)之前最近的if 51、设有如下函数定义:int fun(char *str)char *p=str; while (*p != 0) p+; return (p-str);则以下语句执行后的输出结果是(A)。printf(“%dn”,fun(“Student”);A)7 B)8C)9 D)10 52、设有如下定义语句:union u_typeint i; double x; float f;struct str_typechar str100; union u_type u2;则语句 printf(“%d”,sizeof(struct str_type); 的输出结果是(B)。A)100 B)116C)120 D)200 53、对于整型变量x,下述if语句(B)与赋值语句:x=x%2= =0?1:0;不等价。A)if(x%2!=0) x=0;else x=1; B)if(x%2) x=1;else x=0;C)if(x%2= =0) x=1;else x=0; D)if(x%2= =1) x=0;else x=1; 54、对于整型变量x和y,语句for(x=0,y=0;(y!=123)&(x4);x+) y+;中的“y+;”被执行(A)。A)4次 B)0次C)123次 D)3次 55、以下(D)是正确的变量名。A)5f B)ifC)f.5 D)_f5 56、设有如下程序段:int a33=1,0,2,1,0,2,1,0,1,i,j,s=0;for(i=0;i3;i+) for(j=0;ji;j+) s=s+aij;则执行该程序段后,s的值是(C)。A)0 B)1C)2 D)3 57、以下叙述中,正确的是(B)。A)“#define PRICE=30”定义了与30等价的符号常量PRICEB)预编译处理命令行都必须以“#”开头C)宏名只能包含大写字母和数字字符D)在程序的一行上可以书写几个有效的宏定义 58、对枚举类型进行定义,不正确的是(A)。A)enum b1,2,3; B)enum aA,B,C;C)enum cD=3,E,F; D)enum dX=0,Y=5,Z=9; 59、以下程序的功能是(C)。#include main()FILE *fp; long int n; fp=fopen(“wj.txt”,”rb”); fseek(fp,0,SEEK_END); n=ftell(fp); fclose(fp); printf(“%ld”,n);A)计算文件wj.txt的起始地址 B)计算文件wj.txt的终止地址C)计算文件wj.txt内容的字节数 D)将文件指针定位到文件末尾4260. C 在C语言源程序中,以下叙述正确的是()A) main函数必须位于文件的开头B) 每行只能写一条语句C) 程序中的一个语句可以写成多行D) 每个语句的最后必须有点号61. C 关于C语言的源程序的叙述中,错误的是( )。A) C语言的源程序由函数构成B) main函数可以书写在自定义函数之后C) 必须包含有输入语句D) 一行可以书写多个语句62. C C程序中main函数的位置( )A) 必须在最开始B) 必须在系统库函数后面C) 可以在自定义函数后面D) 必须在最后63. B C语言的函数体由( )括起来A) () B) C) D)/* */64. D 关于C语言的叙述中,不正确的是( )。A) C程序可由一个或多个函数组成B) C程序必须包含一个main()函数C) C程序的基本组成单位是函数D) 注释说明只能位于一条语句的后面65. D 下面关于C语言用户标识符的描述,正确的是()A) 不区分大小写B) 用户标识符不能描述常量C) 类型名也是用户标识符D) 用户标识符可以作为变量名66. D 以下( )是正确的变量名。A) 5fB) ifC) f.5D) _f567. D 以下( )是正确的常量。A) E5B) 1E5.1C) a12D) 32766L 68. D 以下( )是正确的变量名。A) beeB) p11C) intD) p_1169. C 以下( )是正确的字符常量。A) cB) C) WD) 32a70. A 若有定义:int x=2;则正确的赋值表达式是()A) a=(a*3)B) double(a)C) a*3D) a*4=371. C 语句x=(a=3,b=+a);运行后,x、a、b的值依次为()。A) 3,3,4B) 4,4,3C) 4,4,4D) 3,4,372. B 语句a=(3/4)+3%2;运行后,a的值为( )。A) 0B) 1C) 2D) 373. A char型变量存放的是( )。A) ASCII代码值B) 字符本身C) 十进制代码值D) 十六进制代码值74. C 若有定义:int x,a;则语句x=(a=3,a+1);运行后,x、a的值依次为()。A) 3,3B) 4,4C) 4,3D) 3,475. B 若有定义:int a;则语句a=(3*4)+2%3;运行后,a的值为()。A) 12B) 14C) 11D) 1776. A 下面关于算术运算符的叙述,错误的是( )。A) 其算术运算对象不包含函数B) %(模运算符)的运算对象只能为整型量C) 算术运算符的结合方向是自左至右D) 自加和自减运算符的结合方向是自右至左77. A 下面叙述正确的是( )。A) 强制类型转换运算的优先级高于算术运算B) 若a和b是整型变量,(a+b)+是合法的C) A*B是不合法的D) A+B是合法的78. B 若有定义:int k,i=2,j=4;则表达式k=(+i)*(j-) 的值是( ).A) 8B) 12C) 6D) 979. C 设整型变量a为5,使b不为2的表达式是( )。A) b=(+a)/3B) b=6(a)C) b=a%2D) b=a/280. C 若有定义:int a=1,b=2,c=3;则语句+a|+b&+c;运行后b的值为( )。A) 1 B) 0 C) 2 D) 381. B 已知int a;使用scanf()函数输入一个整数给变量a,正确的函数调用是( )。A. scanf(%d,a);B. scanf(%d,&a);C. scanf(%f,&a);D. scanf(%lf,&a);82. D 已知double a ; 使用scanf()函数输入一个整数给变量a,正确的函数调用是( )。scanf(%ld,&a);A) scanf(%ld,&a);B) scanf(%d,&a);C) scanf(%7.2f,&a);D) scanf(%lf,&a);83. B putchar()函数的功能是向终端输出( )。A) 多个字符B) 一个字符C) 一个实型变量值D) 一个整型变量表达式84. D getchar()函数的功能是从终端输入( )。A) 一个整型变量值B) 一个实型变量值C) 多个字符D) 一个字符85. D 若有定义:int x=1234,y=123,z=12;则语句printf(“%4d+%3d+%2d”,x,y,z);运行后的输出结果为()。A) 123412312B) 12341234123412341231231231212C) 1234+1234+1234D) 1234+123+1286. A 下面叙述中,( )不是结构化程序设计三种基本结构的共同特点。A) 先判断后执行B) 单入口,单出口C) 程序中没有执行不到的语句D) 无死循环87. A 结构化程序设计不包括( )。A) 最优化B) 自顶而下,逐步细化C) 模块化设计D) 结构化编码88. D 以下运算符中优先级最高的是()。A) B) |C) &D) +89. A 若有定义:int x=3,y=4;则表达式!x|y的值为()。A) 1B) OC) 3D) 490. A 若有定义:int i=7,j=8;则表达式i=j|ib)&(y=cd)的值为(A )。A) 0B) 1C) 5D) 698. B 对于整型变量x,下述if语句( )与赋值语句:x=x%2= =0?1:0; 不等价。A) if(x%2!=0)x=0;elsex=1;B) if(x%2)x=1;elsex=0;C) if(x%2=0)x=1;elsex=0;D) if(x%2=1)x=0;elsex=1;99. B 若有定义:int x=1,y=2,z=4;则以下程序段运行后z的值为()。 if(xy)z=x+y;else z=x-y;A) 3B) 1C) 4D) 不确定100. D 若有定义:inta=1,b=2,c=3;则以下程序段运行后a,b,c的值分别为()。 if(ab)c=a;a=b;b=c;A) a=1,b=2,c=3B) a=2,b=3,c=1C) a=2,b=3,c=3D) a=2,b=1,c=1101. D 以下程序段运行后a的值为()。 int x=6,y=5; int a; a=(-x=y+)?x:y+1;A) 0B) 1C) 6D) 5102. C 以下程序的运行结果()。void main() int n=e; switch(n-) default: printf(“error”); case a: case b: printf(“good”);break; case c: printf(“pass”);case d: printf(“warn”);A) errorB) goodC) errorgoodD) warn103. B 设有整型变量x,下述语句( )不会出现死循环。A) for(;x+=1);B) for(;(x=getchar()!=n;);C) while(1)x+;D) for(x=10;x);104. B 对于整型变量x,与while(!x) 等价的是( )。A) while(x!=0)B) while(x=0)C) while(x!=1)D) while(x)105. A 对于整型变量x和y,语句for(x=0,y=0;(y!=123)&(x4);x+) y+;中的“y+;”被执行( )。A) 4次B) 0次C) 123次D) 3次106. B 在C语言中while循环和dowhile循环的主要区别是()。A) dowhile循环体内可以使用break语句,while循环体内不能使用break语句B) dowhile的循环体至少无条件执行一次,while的循环体不是C) dowhile循环体内可以使用continue语句,while循环体内不能使用continue语句D) while的循环体至少无条件执行一次,dowhile的循环体不是107. B 以下程序段运行后,循环体运行的次数为()。 int i=10, x; for( ; i10; i+) x=x+ i;A) 10B) 0C) 1D) 无限108. A 下列数组声明中,正确的是( )。A) inta5=0;B) inta=012;C) inta5=0;D) inta;109. A 下列数组声明中,正确的是( )。A) inta10;B) intn=10,an;C) intN=10;intaN;D) intn;scanf(%d,&n);intan;110. C 已知 int a13; 则不能正确引用a数组元素的是( )。A) a0B) a10C) a10+3D) a13-5111. B 若有定义:int a3=0,1,2;则a1的值为()。A) 0B) 1C) 2D) 3112. A 若有定义:int a5=1,2,3,4,5; 则语句a1=a3+a2+2-a3-1;运行后a1的值为()。A) 6B) 5C) 1D) 2113. D 以下能对一维数组a进行正确初始化的语句是()。A) inta5=(0,0,0,0,0);B) inta5=0;C) inta5=1,2,3,4,5,6,7;D) inta=0;114. C 设有如下程序段:int a33=1,0,2,1,0,2,1,0,1, i , j, s=0;for(i=0;i3;i+) for(j=0;ji;j+) s=s+aij;则执行该程序段后,s的值是( )。A) 0B) 1C) 2D) 3115. B有如下定义int a3=1,2,3,4,5,6,7,8;则数组a的行数是( )。A) 2B) 3C) 4D) 无法确定的116. D 以下数组定义中,正确的是( )。A) inta23=1,2,3,4,5,6,7;B) inta=1,2,3,4,5,6,7,8,9;C) inta2=1,2,3,4,5,6;D) inta4=6;117. A 若有定义:int a34=1,2,0,1,2,3;则a11的值为()。 A) 0B) 1,2C) 1D) 3118. A 若有定义:int a33;则a21-a的值为()。A) 7B) 8C) 6D) 9119. C 若有定义:int i=0,x=0;int a34=1,2,3,4,5,6,7,8,9;则以下程序段运行后x的值为()。for ( ; i3; i+) x+=ai2-i;A) 0B) 12C) 15D) 18120. A 设有以下变量定义:char str1=”string”, str28,*str3, *str4=”string”;( )是正确的。A) strcpy(str1,China);B) str2=China;C) strcpy(*str3,China);D) strcpy(str40,China);121. D 有如下定义:char str6=a,b,0,d,e,f;则语句:printf(“%s”,str);的输出结果是( )。A) abB) abdefC) ab0D) ab122. C 设有如下数组定义:char str8=“FuJian”; 则分配给数组str的存储空间是( )字节。A) 6B) 7C) 8D) 9123. B 若有定义:char a =”abcdef”;char b=”xyz”;则以下程序运行后屏幕输出为()。strcpy(a,b); printf(“%c”,a2);A) cB) zC) 0D) d124. C 以下程序段运行后屏幕输出为()。char a = “abc0mis”; printf(“%d”,strlen(a);A) 5B) 8C) 3D) 4125. B 若有定义:int a=2;则语句a=strcmp(“miss”, “miss”);运行后a的值为( )。A. 1B. 0C. 1D. 2126. A 设有如下函数定义: int fun(char *str) char *p=str; while (*p!=0) p+; return (p-str);则以下语句执行后的输出结果死( )printf(“%dn”,fun(“Student”)A) 7B) 8C) 9D) 10127. A 以下程序的运行结果是( )。int fun(int array44)int j; for(j=0;j4;j+) printf(“%2d”,array2j); printf(“n”);main()int a44=0,1,2,0,1,0,0,4,2,0,0,5,0,4,5,0; fun(a);A) 2005B) 1004C) 0120D) 0450128. C 如下fun函数的类型是( )。fun(float x)double y; int z; y=x*x; z=(int)y; return(z);A) voidB) doubleC) intD) float129. B 以下程序运行后屏幕输出为()。includeint f(int x, int y) return (x+y); main() int a=2,b=3,c; c=f(a, b); printf(“%d+%d=%d”,a,b,c);A) 0B) 2+3=5 C) 2+3=0D) 3+2=5130. D 以下程序运行后屏幕输出为()。includeint a=2,b=3;int max (int a, int b) int c; c=ab?a:b; return (c);main() int a=4; printf(“%d”,max(a,b);A) 2,3 B) 2 C) 3 D)4131. B 以下程序运行后屏幕输出为()。 include void f(int i) int a=2; a=i+; printf(“%d,” ,a ); main( ) int a=1,c=3; f(c); a=c+; printf(“%d”,a);A) 4,3B) 3,3C) 4,5D) 3,5132. D 若有以下宏定义,#define MOD(x,y) x%y则执行以下程序段后,z的值是( )。int z,a=15,b=100;z=MOD(b,a);A) 100B) 15C) 11D) 10133. B 以下叙述中,正确的是( )。A) “#definePRICE=30”定义了与30等价的符号常量PRICEB) 预编译处理命令行都必须以“#”开头C) 程序中使用带参数的宏时,参数类型要与宏定义时一致D) 宏名只能包含大写字母和数字字符134. A 以下叙述中,正确的是( )。A) 宏展开不占用运行时间,只占用编译时间B) 预编译处理命令行必须以分号结束C) 一个源程序只能有一个预编译处理命令行D) 使用带参数的宏定义时,应该说明每个参数的数据类型135. C 以下叙述中不正确的是( )。A) 宏展开不占用运行时间,只占用编译时间B) 宏名无类型C) 宏名必须用大写字母表示D) 预处理命令行都必须以#号开始136. A 若有定义: #define PI 3, 则表达式PI*2*2的值为()。A) 12B) 4C) 3D) 不确定137. C 以下程序运行后,屏幕输出为()。define MIN(a,b)(a)(b)?(a):(b)main() int x=2,y=3,z; z=2*MIN(x,y); printf(“d”,z);A) 2 B)3 C) 4 D) 6138. D 设有以下语句,则( )是对a数组元素的不正确引用,其中0i10。int a10=0,1,2,3,4,5,6,7,8,9, *p=a ;A) apaB) *(&ai)C) piD) *(*(a+i)139. C 若有定义int *p1,*p2;,则指针变量p1、p2不能进行的运算是( )。A) B) =C) +D) 140. B 执行以下程序段的输出结果是( )。int a=10,*p=&a;printf(“%d”,+*p);A) 10B) 11C) 变量a的地址D) 变量a的地址+1141. A 以下程序段运行后*(p+3)的值为()。 char a=”good”; char *p; p=a;A) dB) 0C) 存放d的地址D) o142. C 以下程序段运行后*(+p)的值为()。 char a5=”work”; char *p; p=a;A) wB) 存放w的地址C) oD) 存放o的地址143. B 若有定义:int *p,a=4; p=&a;则以下均代表地址的是()。A) a,pB) &a,pC) &a,*pD) a,*p144. D 若有以下程序段,且0i4,0j3,则不能正确访问a数组元素的是( )。int i,j,(*p)3; int a3=1,2,3,4,5,6,7,8,9,10,11,12;p=a;A) *(*(a+i)+j)B) pijC) (*(p+i)jD) pi+j145. B 若函数fun的函数头为:int fun(int i,int j)且函数指针变量p定义如下:int (*p)(int i,int j);则要使指针p指向函数fun的赋值语句是( )。A) p=*fun;B) p=fun;C) p=fun(i,j);D) p=&

温馨提示

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

评论

0/150

提交评论