2017年福建省二级C语言试卷真题.doc_第1页
2017年福建省二级C语言试卷真题.doc_第2页
2017年福建省二级C语言试卷真题.doc_第3页
2017年福建省二级C语言试卷真题.doc_第4页
2017年福建省二级C语言试卷真题.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

(1) 下面叙述正确的是( D )。A) main( )函数必须位于源程序文件的开头B) 程序中必需含有自定义函数C) 每行最多只能写两条语句D) 所有语句都必须以分号“;”结束(2) 下面叙述错误的是( D )。A) C语言规定可逐个引用数组元素但不能一次引用整个数组B) C语言数组名称是数组在内存中的首地址C) 数组中每一个元素都属于同一个数据类型D) C语言数组长度在定义数组时刻不作确定(3) 以下程序段的运行结果是( C )。int t 3=1,2,3,4,5,6,7,8,9,10,11,12;printf(“%dn”,t11);A) 4B) 3C) 5D) 1(4) 以下程序段的运行结果是( C )。char str32=a,b,c,0,e,f;printf(“%s”,str0);A) abc0efB) abcefC) abcD) a(5) 以下程序段的运行结果是( C )。int f(int c) c+=2; return c;main( ) int a=2,c=5;a=f(a); printf(“%d %d n”,a,c);A) 2 4B) 4 4C) 4 5D) 2 5(6) 下面叙述错误的是( D )。A) “#define PRICE 30”命令的作用是定义一个与30等价的符号常量PRICEB) C源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率C) “#include ”命令的作用是在预处理时将stdio.h文件中的实际内容代替该命令D) 宏定义也是C语句,必须在行末加分号(7) 若有定义:int a=2,*p=&a;,则以下( A )均表示地址。A) &a,pB) a,p C) a,*p D) &a,*p(8) 以下程序段运行后x的值为( C )。int a =1,2,3,4,5,6,7,8;int i,x,*p;x=1;p=&a1;for (i=0;i3;i+) x*=*(p+i);A) 1B) 120C) 24D) 6(9) 下列( C )对结构类型变量定义是错误的。A) struct teacher int num; int age;struct teacher teach1;B) struct int num; int age; teach1, teach2;C) struct int num; int age; teacher;struct teacher teach1;D) struct teacher int num; int age; teach1;(10) 以下程序段运行后,( D )对数组a元素的引用是错误的。(其中0i4,0j0) j+;/*语句3*/A) 语句1、2、3均正确B) 语句2正确,语句1和语句3错误C) 语句1错误,语句2和语句3正确D) 语句1、2、3均错误(12) C语言的基本数据类型包括( A )。A) 整型、实型、字符型B) 整型、指针型、字符型C) 整型、实型、逻辑型D) 整型、实型、空类型(13) 下面程序运行后,屏幕显示File open error!,则可能的原因是( A )。#include main()FILE *fp;char str256;fp=fopen(“test.txt”,”rt”);if (fp= =NULL) printf(“File open error!:); return;fscanf(fp,”%s”,str);fclose(fp);A) 当前工作目录下没有test.txt文件B) 函数fopen( )的参数是错误的C) 当前工作目录下的test.txt文件是空文件D) text.txt文件已经打开(14)( C )语句符合C语言语法。A) int a=b=2,c=5;B) float x=3.2, int i,j=6;C) float x=2.3,b,c;D) int a=2,b+=a;(15) 若有定义:int x,y,z; 语句x=(y=z=3,+y,z+=y); 运行后x的值为( B )。A) 6B) 7C) 8D) 3(16) 若有定义int a=8,b=5;要实现输出形式为:8*5=40,正确的printf( )函数调用语句是( D )。A) printf(“a*b=a*bn”);B) printf(“a*b=%dn”,a*b);C) printf(“%d*%d=a*bn”,a,b);D) printf(“%d*%d=%dn”,a,b,a*b);(17) 若有定义:int a;且表达式!a的值为0,则表达式( B )的值为1。A) !(a0)B) a!=0C) a= =0D) a=0(18) 下列运算符中优先级最低的是( C )。A) B) *C) =D) !(19) 以下程序段运行后x的值为( C )。int a=3,b=6,x;x=(a= =b)?a+:-b;A) 6B) 4C) 5D) 3(20) 以下程序段运行后x的值为( A )。int i=0,x=0;for (;i=5;i+,i+)x+=3;A) 9B) 15C) 6D) 12(21)( B )是关于C语言数据类型的正确叙述。A) 枚举类型不是基本类型B) 变量使用前应定义相应的数据类型C) 不允许使用空类型D) 数组不是构造类型(22)( C )是正确的数组定义。A) int n=5; int arrn;B) int n; n=5; int arrn;C) int arr10;D) int N=5, arrN;(23) 以下程序段运行后a的值为( B )。int a=2;a=strcmp(“miss”,”miss”);A) trueB) 0C) 1D) -1(24) 以下程序段的运行结果是( D )。int fun(int array33) int j; for (j=0;j3;j+) array1j+; printf(n);main( ) int j,a33=0,1,2,1,0,4,2,4,5; fun(a); for (j=0;j6) a=a+b;else if (a= =6) b=a+c;else a=b+c; printf(%dn,a);A) 9B) 6C) 8D) 5(38) 以下程序段运行后x的值为( D )。int i,j,x=0;for (i=3;i=1;i-)for (j=1;j=i;j+) x=x+2;A) 8B) 14C) 10D) 12(39) 下面叙述错误的是( D )。A) c源程序必须包含一个main( )函数B) c源程序可由一个或多个函数组成C) 一个c源程序的执行是从main( )函数开始,直到main( )函数结束D) 注释说明部分只能位于c源程序的最前面(40) 下面叙述错误的是( C )。A) 一个指针变量只能指向同一类型的变量B) 一个变量的地址称为该变量的指针C) 可以将一个整数值赋给指针变量D) 任何指针变量都可以与空指针NULL进行比较(41) 以下程序的运行结果是( C )。main() int x,y;int *p,*q,*t;x=23;y=45;p=&x;q=&y;t=p;p=q;q=t; printf(%d,%dn,x,y);A) 45,23B) 45,45C) 23,45D) 23,23(42) 若有定义int a=1,b=2,t=3; struct data char a; float b3; long c;d1;则变量d1的长度是( B )。A) 4B) 17C) 12D) 15(43) 以下程序的运行结果是( A )。main() int a3=1,2,3;int *num3;int *p,i;for (i=0;i3;i+) numi=&ai;p=num; printf(%d ,*p);A) 1B) &a0C) 3D) num(44) 下面程序运行后,屏幕显示write ok!,则下面叙述正确的是( C )。main( ) FILE *fp;fp=fopen(“data.txt”,”wt”);if (fp!=NULL) fprintf(fp,”%sn”,”File write successd!n”);fclose(fp);printf(“write ok!n”);A) 当前工作目录下找不到data.txt文件B) 当前工作目录的data.txt文件已经打开C) 当前工作目录的data.txt文件已经关闭D) 当前工作目录下存在data.txt文件,其中的内容是”write ok!”(45)( C )为正确的用户标识符。A) unionB) 3_rowC) max_atD) min-5(46) 若有定义:int b=-15;,则( C )为正确的赋值表达式。A) b=*5B) *b=6C) b+=b*3D) b+10=-5(47) 以下叙述错误的是( C )。A) 算术运算符中不包含“=”运算符B) 模运算符“%”是c语言基本的算术运算符C) 算术运算符中只有“*”、“/”优先级高于关系运算符D) 自加和自减运算符只能用于变量,而不能用于常量或表达式(48) 若有定义:float x=2,y; int a=3; 语句y=1*(x+a)/3;运行后,y的值为( D )。A) 2.0B) 1.0C) 0D) 1.666667(49) 若有定义:int arr15,n=5; 无法正确引用arr数组元素的是( A )。A) arr10+nB) arr0C) arr15-nD) arrn(50) 以下程序段运行后s的值是( B )。int a33=1,2,3,1,2,3,1,2,3;int i,j,s=0;for (i=0;i3;i+)for (j=i;jnameB) C) 0D) t1-name0(55) 若有定义enum daysun,mon,tue,wed,thu,fri,sat;,则枚举常量sun、mon的值分别为( A )。A) 0 1B) 7 1C) 7 0D) 1 2(56) 若有语句int a; char c; scanf(“%3d%c”,&a,&c);,为将整数135赋给a,字符6赋给c,正确的数据输入方式是( C )。(说明:代表换行,_代表空格)A) 135_6B) 1356C) 1356D) 135_6_(56) 若有定义int a=3,b=5,c=8; 则表达式!(a-b)| (c-b)的值为( A )。A) 1B) 0C) 2D) 3(57) 若有定义:float x=3.5,y=5.5; 则表达式( A )的值为2。A) (int)(x+y)%7B) int (x+y)%7C) (x+y)%7D) (int)x+y%7(58) 若有定义:int i,x=0;语句for (i=1;i=3;i+) x+=2;与下列( D )程序段不等价。A) i=1;for (;i=3;i+) x+=2;B) for (i=1;i=3;) x+=2;i+;C) i=1;for (;i=3;)x+=2;i+;D) i=1;for ( ; ;i+) x+=2;(59) 以下( A )对二维数组arr的初始化是错误的。A) int arr23=1,2,3,4,5,6;B) int arr 3=1,2,3,4,5;C) int arr23=1,3,4,5;D) int arr23=1,2,3,4;(60) 若有定义:char str110,str210=”Fujian”;,能将字符串”Fujian”赋给数组str1的正确语句是( D )。A) strcopy(str1,str2);B) str1=”Fujian”;C) strcpy(str2,str1);D) strcpy(str1,str2);(61) C语言中,数组名作为函数调用的实参时,下面叙述正确的是( A )。A) 形参数组中各元素值的改变会使实参数组相应元素的值同时发生变化B) 传递给形参的是数组第一个元素的值C) 传递给形参的是数组元素的个数D) 传递给形参的是数组中全部元素的值(62) 以下程序段的运行结果是( C )。int x =2,3,4,5,6,7,*p=x;int i,s=0;for (i=1;i5;i+) s+=pi+;printf (“%d”,s);A) 14B) 6C) 8D) 20(63) 若有定义int x,a,b; 语句x=(a=2,b=3,a+b);运行后,x、a、b的值依次为( D )。A) 2 3 5B) 5 3 2C) 3 2 5D) 5 2 3(64) 以下程序段的运行结果是( B )。int s=15;switch (s/4)default: printf(“Over “); case 1: printf(“One “);break; case 2: printf(“Two ”);A) TwoB) Over OneC) Over TwoD) One(65) 若有定义#define F 2+3,则表达式F*F的值为( D )。A) 13B) 17C) 25D) 11(66) 以下程序段的运行结果是( A )int x3=1,2,3;int *p;p=x;for (p+;p&x2;p+) printf(“%d “,*p);A) 2B) 2 3C) 3D) 1 2(67) 若有定义 union u_type int x; float y3; char z;a;则变量a的长度是( D )A) 4B) 1C) 15D) 12(68) 若有定义:int a34=1,2,3,4,5,6,7,8,9,10,11,12,(*p)4;p=a;( C )对数组a元素的引用是正确的。A) *(p+4)B) (*p)2C) *(p2+3)D) *(p4)(69)( B )为正确的字符常量。A) 084B) C) 165D) bcd(70) 以下程序段的运行结果是( A )。int s=15;switch (s/4) case 1: printf(“One “); case 2: printf(“Two ”);case 3: printf(“Three”);default: printf(“Over “);A) Three OverB) Two OverC) ThreeD) One Over(71) 以下程序段运行后x的值为( A )。int a8=1,2,3,4,5,6,7,8,i,x=0;for (i=1;i8;i+,i+) x=x+ai;A) 20B) 18C) 16D) 36(72) 以下程序段的运行结果是( B )。char str =“FuJian”;printf (“%d”,strlen(str);A) 8B) 6C) 7D) 9(73) 以下程序的运行结果是( C )。int a=2,b=3;int min (int a,int b) int c; c=ab?a:b; return (c);main( ) int a=4; printf(“%d”,min(a,b);A) 4B) 2C) 3D) 2,3(74) 以下程序段运行后*(p+)的值为( B )。 char a5=”work”; char *p; p=a;A) oB) wC) a1的地址D) a0的地址(75) 若有定义:int a10=0,1,2,3,4,5,6,7,8,9,*p=a;,则( B )表达式是错误的。A) p+B) a+C) a2D) p2(76) C语言中,对文件操作的一般步骤是( C )。A) 定义文件指针,读文件,写文件,关闭文件B) 操作文件,定义文件指针,修改文件,关闭文件C) 定义文件指针,打开文件,读写文件,关闭文件D) 打开文件,定义文件指针,读写文件,关闭文件(76)( D )为正确的变量名。A) 5_proB) caseC) elseD) pro_5(77) 下面叙述正确的是( B )。A) 2/3与2%3等价B) 5/(int)4.0与5/4等价C) +2与- -3等价D) +2与3等价(78) 若有定义float x;,要从键盘输入数据6.02赋给x,则应选用( B )语句。A) scanf (“%8.2f”,&x);B) scanf (“%f”,&x)C) scanf (“%4.2f”,&x)D) scanf (“%1.2f”,&x)(79) 若有定义:int x,a; 赋值语句a=(x%3= =0)?0:1; 与( D )语句不等价。A) if (x%3!=0) a=1; else a=0;B) if (!(x%3= =0) a=1; else a=0;C) if (x%3= =0) a=0; else a=1;D) if (x%3) a=0; else a=1;(80) 以下程序段运行后x的值为( A )。 int i =0,x=2; while (i+=5) x+=2; A) 14B) 8C) 12D) 10(81) 下面叙述正确的是( C )。A) 宏名必须用大写字母表示B) 一个源程序只能有一个预编译处理命令行C) 宏展开不占用运行时间,只占用编译时间D) 预处理命令也是C语句,必须以分号结束(82)( A )对枚举类型的定义是错误的。A) enum b1,2,3;B) enum aA,B,C;C) enum dX=0,Y=5,Z=9;D) enum cD=3,E,F;(83) C源程序中main( )函数的位置( D )。A) 必须在自定义函数前面B) 必须位于程序的最前面C) 必须在系统库函数后面D) 可以在自定义函数后面(84)( A )为合法的常量。A) 1.23E+8B) 5,326C) 3.21E-6.5D) b_k(85) 下面叙述正确的是( A )。A) C语言中整型与字符型变量的混合运算表达式的结果是整型B) “abc”+”xxx”是正确表达式C) 模运算符”%”两边运算数的数据类型是任意的D) (3+9)+是正确表达式(86) 若有定义:int a=1,b=2,c=3,d=4,t=2,k=2; 语句(t=ab)| (k=cd);运行后,k的值为( B )。A) 0B) 2C) 1D) -1(87) 若有定义:int x; char c=A;则正确的赋值表达式是( D )。(说明:A的ASCII码的十进制值为65,a的ASCII码的十进制值为97)A) x=c+CBAB) x=c+ABCC) x=ABCD) x=c+32(88) 下面叙述正确的是( B )。A) for循环只能用于循环次数已经确定的情况B) for循环的循环体可包含多条语句,但必须用花括号括起来C) 在for循环中,不能用break语句跳出循环体D) for循环是先执行循环体语句,后判断表达式(89) 若有定义:int a10,i=2;,能正确引用a数组的是( B )。A) a(7)B) a10-iC) a10D) a9+i(90) 若有定义:int a34=1,2,3,4,5,6,7;,则a11的值为( B )。A) 3B) 4C) 1D) 2(91) 以下程序段的运行结果是( D )。union int num1; int num2;s;s.num1=20;s.num2=30;printf(“%d”,s.num1);A) 2030B) 20C) 50D) 30(92) 若有定义:int a,b=5;,语句a=(b/2)+b%2;运行后a的值为( B )。A) 4B) 3C) 0D) 2(93) 若有定义:char c1=A,c2=B;,语句printf(“%d+%d=%d”,c1,c2,c1+c2);运行后的结果为( A )。(说明:A的ASCII码的十进制值为65)A) 65+66=131B) A+B=ABC) A+B=131D) 65+66=AB(94) 以下程序的运行结果是( C )。fun( ) static int a=0; a+; printf(“%d “,a);main( ) int i;for (i=1;i0;x-) ;D) for (i=10; ;i-) ;(97) 以下程序段运行后*(p+1)的值为( A )。char a =”good”;char *p;p=a;A) oB) a1的地址C) 不确定D) g(98) 若有定义:int a32;,则表达式&a21-a的值为( C )。A) 2B) 4C) 5D) 3(99)( A )能正确定义一个指向函数的指针。A) int (*p)( )B) int (*p( )C) (int *)p( )D) int *p( )(100) 若有定义 Typedef int * INTEGER;INTEGER p;则下面叙述正确的是( B )A) p是与INTEGER相同的类型B) 程序中可用INTEGER定义int类型指针变量C) p是一个整型变量

温馨提示

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

评论

0/150

提交评论