吉林大学《C语言程序设计》期末考试必备题集

奥鹏期末考核

65279–吉林大学《C语言程序设计》奥鹏期末考试题库合集

单选题:
(1)以下程序的输出结果是   #include stdio.hvoid reverse(int a[],int n){int i,t;for(i=0;in/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){int b[10]={1,2,3,4,5,6,7,8,9,10};int i,s=0;reverse(b,8);for(i=6;i10;i++) s+=b[i];printf(%dn,s);}
A.22
B.10
C.34
D.30
答案问询微信:424329

(2)假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入:   PROG ABCDEFGH IJKL回车,则输出结果为   main( int argc, char *argv[])   { while(–argc0)   printf(%s,argv[argc]);   printf(\n);   }
A.ABCDEFG
B.IJHL
C.ABCDEFGHIJKL
D.IJKLABCDEFGH
答案问询微信:424329

(3)下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空。   #include stdio.h main(){ int i=0,j,k;do{i++;k=316-13*i;}while(k%11);j=k/11;printf(316=13*%d+11*%d,i,j);}
A.k%11
B.k
C.k/11==0
D.k==0
答案问询微信:424329

(4)设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是
A.p=1;
B.*q=2;
C.q=p;
D.*p=5;
答案问询微信:424329

(5)在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是
A.a=20000+20000;
B.a=4000*10;
C.a=30000+10000;
D.a=4000L*10L
答案问询微信:424329

(6)请选出可用作C语言用户标识符的是
A.void,define,WORD
B.a3_b3,_123,IF
C.FOR,–abc,Case
D.2a,Do,Sizeof
答案问询微信:424329

(7)C语言允许函数类型缺省定义,此时函数值隐含的类型是
A.float
B.int
C.long
D.double
答案问询微信:424329

(8)下列程序的输出结果是   main()   { double d=3.2; int x,y;   x=1.2; y=(x+3.8)/5.0;   printf(%d\n, d*y);   }
A.3
B.3.2
C.0
D.3.07
答案问询微信:424329

(9)下面程序的运行结果是   #include   main()   { int y=10;   do{y–;}while(–y);   printf(%d\n,y–);   }
A.1
B.1
C.8
D.0
答案问询微信:424329

(10)若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为
A.4
B.16
C.32
D.52
答案问询微信:424329

(11)阅读以下程序及对程序功能的描述,其中正确的描述是   #include   main()   {   FILE *in,*out;   char ch,infile[10],outfile[10];   printf("Enter the infile name:\n");   scanf("%s",infile);   printf("Enter the outfile name:\n");   scanf("%s",outfile);   if((in=fopen(infile,"r"))==NUL
A.程序完成将磁盘文件的信息在屏幕上显示的功能
B.程序完成将两个磁盘文件合二为一的功能
C.程序完成将一个磁盘文件复制到另一个磁盘文件中
D.程序完成将两个磁盘文件合并并在屏幕上输出
答案问询微信:424329

(12)有如下程序   int a[10]={1,2,3,4,5,6,7,8,9,10};   int *p=&a[3],b;b=p[5];   则b的值是
A.5
B.6
C.9
D.8
答案问询微信:424329

(13)执行以下程序后,a,b的值分别为   main()   { int a,b,k=4,m=6,*p1=&k,*p2=   a=p1==   b=(*p1)/(*p2)+7;   printf("a=%d\n",a);   printf("b=%d\n",b);   }
A.-1,5
B.1,6
C.0,7
D.4,10
答案问询微信:424329

(14)以下程序有语法错误,有关错误原因的正确说法是   main()   { int G=5,k;   void prt_char();   …   k=prt_char(G);   …   }
A.语句 void prt_char();有错,它是函数调用语句,不能用void说明
B.变量名不能使用大写字母
C.函数说明和函数调用语句之间有矛盾
D.函数名不能使用下划线
答案问询微信:424329

(15)下面能正确进行字符串赋值操作的是
A.char s[5]={ABCDE};
B.char s[5]={ A, B, C, D, E};
C.char *s;s=ABCDE;
D.char *s;char a; scanf(%s,&s);
答案问询微信:424329

(16)以下不正确的叙述是
A.在C程序中,逗号运算符的优先级最低
B.在C程序中,APH和aph是两个不同的变量
C.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
答案问询微信:424329

(17)设有int x=11;则表达式(x++*1/3)的值是
A.3
B.4
C.11
D.12
答案问询微信:424329

(18)设有以下说明语句   struct ex   { int x ; float y; char z ;} example;   则下面的叙述中不正确的是
A.struct结构体类型的关键字
B.example是结构体类型名
C.x,y,z都是结构体成员名
D.struct ex是结构体类型名
答案问询微信:424329

(19)C语言中,能识别处理的文件为
A.文本文件和数据块文件
B.文本文件和二进制文件
C.流文件和文本文件
D.数据文件和二进制文件
答案问询微信:424329

(20)设有数组定义: char array[]=China; 则数组 array所占的空间为
A.4个字节
B.5个字节
C.6个字节
D.7个字节
答案问询微信:424329

(21)一个C语言程序是由
A.一个主程序和若干子程序组成
B.函数组成
C.若干过程组成
D.若干子程序组成
答案问询微信:424329

(22)下列各数据类型不属于构造类型的是
A.枚举型
B.共用型
C.结构型
D.数组型
答案问询微信:424329

(23)以下不正确的定义语句是
A.double x[5]={2.0,4.0,6.0,8.0,10.0};
B.int y[5]={0,1,3,5,7,9};
C.char c1[]={′1′,′2′,′3′,′4′,′5′};
D.char c2[]={′\x10′,′\xa′,′\x8′};
答案问询微信:424329

(24)下列程序的输出结果是   int b=2;   int func(int *a)   { b += *a; return(b);}   main()   { int a=2, res=2;   res += func(&a);   printf(%d\n,res);   }
A.4
B.6
C.8
D.10
答案问询微信:424329

(25)下面程序的输出结果是   main()   { int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;   printf(%d\n,*(p+2));}
A.3
B.4
C.1
D.2
答案问询微信:424329

(26)若已定义:   int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a,i;   其中 0i9, 则对a数组元素不正确的引用是
A.a[p-a]
B.*(&a[i])
C.p[i]
D.a[10]
答案问询微信:424329

(27)sizeof(float)是
A.一个双精度型表达式
B.一个整型表达式
C.一种函数调用
D.一个不合法的表达式
答案问询微信:424329

(28)以下叙述中不正确的是
A.在不同的函数中可以使用相同的名字的变量
B.函数中的形式参数是局部变量
C.在一个函数内定义的变量只在本函数范围内有效
D.在一个函数内的复合语句中定义的变量在本函数范围内有效
答案问询微信:424329

(29)若有以下程序   #include   int a[]={2,4,6,8};   main()   { int i;   int *p=a;   for(i=0;i4;i++)a[i]=*p;   printf(%d\n,a[2]);   }   上面程序输出结果是
A.6
B.8
C.4
D.2
答案问询微信:424329

(30)函数 rewind 的作用是
A.使文件位置指针重新返回文件的开始位置
B.将文件位置指针指向文件中所要求的特定位置
C.使文件位置指针指向文件的末尾
D.使文件位置指针自动移至下一个字符位置
答案问询微信:424329

(31)下面程序段的运行结果是   char *format=%s,a=%d,b=%d\n;   int a=11,b=10;   a+=b;   printf(format,a+=b,a,b);
A.for,a+=b,ab
B.format,a+=b
C.a+=b,a=21,b=10
D.以上结果都不对
答案问询微信:424329

(32)有如下程序:   long fib(int n)   { if(n2)return(fib(n-1)+fib(n-2));   else return(2);   }   main()   { printf(%d\n,fib(3));}   该程序的输出结果是
A.2
B.4
C.6
D.8
答案问询微信:424329

(33)以下程序有错,错误原因是   main()   { int *p,i;char *q,ch;   p=   q=   *p=40;   *p=*q;   ……   }
A.p和q的类型不一致,不能执行*p=*q;语句
B.*p中存放的是地址值,因此不能执行*p=40;语句
C.q没有指向具体的存储单元,所以*q没有实际意义
D.q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;没有意义,可能会影响后面语句的执行结果
答案问询微信:424329

(34)请选出以下语句的输出结果   printf(%d\n,strlen(\t\\065\xff\n));
A.5
B.14
C.8
D.输出项不合法,无正常输出
答案问询微信:424329

(35)设有以下语句:   char x=3,y=6,z;   z=x^y2;   则z的二进制值是
A.00010100
B.00011011
C.00011100
D.00011000
答案问询微信:424329

(36)在16位IBM-PC机上使用C语言,若有如下定义   struct data   { int i;   char ch;   double f;   } b;   则结构变量b占用内存的字节数是
A.1
B.2
C.7
D.11
答案问询微信:424329

(37)有以下程序:   #include   union pw   { int i;   char ch[2];}a;    main()    {a.ch[0]=13;a.ch[1]=0;printf(%d\n,a.i);}   程序的输出结果是
A.13
B.14
C.208
D.209
答案问询微信:424329

(38)凡是函数中未指定存储类别的局部变量,其隐含的存储类别为(? ).
A.自动(auto)
B.静态(static)
C.外部(extern)
D.寄存器(register)
答案问询微信:424329

(39)对于for(表达式1;;表达式3)可理解为( ).
A.for(表达式1;1;表达式3)
B.for(表达式1:1;表达式3)
C.for(表达式1;表达式1;表达式3)
D.for(表达式1;表达式3;表达式3)
答案问询微信:424329

(40)选择出合法的if语句(设int x,y;)(? ?? ).
A.if(x!=y)if(x>y)printf("x>y\n”);else prinf(”x<y”);else printf(”X==y\n”);
B.if(xi=y)if(x>y)printf(”x>y”)else printf(”x<y\n”);else printf(”x==y\n”);
C.if(x!=y)if(x>y)Printf(”x>y\n”);else printf(”x<y\n”)else printf(”x==y\n”);
D.if(x!=y)1f(x>y) Printf(”x>y\n”);else printf(”x<y\n”)e1se Printf(”x==y\n”);
答案问询微信:424329

(41)以下正确的说法是(? ).
A.如果在一个函数中的复合语句中定义了一个变量,则该变量只在该复合语句中有效
B.在该函数中有效
C.在本程序范围内均有效
D.非法变量
答案问询微信:424329

(42)对下面程序段#define? A? 3#define? B(a)? ((A+1)*a)??? .? ??? .x=3*(A+B(7));正确的判断是( ).
A.程序错误,不许嵌套宏定义
B.x=93
C.x=21
D.程序错误,宏定义不许有参数
答案问询微信:424329

(43)设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ).
A.int
B.float
C.double
D.不确定
答案问询微信:424329

(44)下面不正确的字符串常量是( ).
A.’abc’
B.”12’12”
C.”0”
D.“ ”
答案问询微信:424329

(45)以下描述正确的是( )。
A.由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。
B.do-while循环由do开始,用while结束,在while(表达式)后面不能写分号。
C.在do-while循环体中,一定要有能使while后面表达式的值变成零(“假”)的操作。
D.do-while循环中,根据情况可以省略while
答案问询微信:424329

(46)以下程序的运行结果是(? )。?????? #define MAX(A,B)? (A)(B)?(A):(B)?????? #define PARTY(Y)? printf(“Y=%d “,Y)Main(){int a=1,b=2,c=3,d=4,t;T=MAX(a+b,c+d);PRINT(t);}
A.Y=3
B.存在语法错误
C.Y=7
D.Y=0
答案问询微信:424329

(47)若使用一维数组名作函数实参,则以下正确的说法是( ).
A.必须在主调函数中说明此数组的大小
B.实参数组类型与形参数组类型可以不匹配
C.在被调函数中,不需要考虑形参数组的大小
D.实参数组名与形参数组名必须一致
答案问询微信:424329

(48)设有程序段t=0while(printf(“*”)){t++;if(t3) bread;}下面描述正确的是( ).
A.其中循环控制表达式与0等价
B.其中循环控制表达式与‘0’等价
C.其中循环控制表达式是不合法的
D.以上说法都不对
答案问询微信:424329

(49)设有以下说明:struct packed{ unsigned one:1;unsigned two:2;unsigned three:3;unsigned four:4;} data;则以下位段数据的引用中不能得到正确数值的是( ).
A.data.one =4
B.data.two=3
C.data.three =2
D.data.four=1
答案问询微信:424329

(50)若以下变量均是整形,且num=sum=7;则计算表达式sUM=num++,sUM++,++num后sum的值为( ).
A.7
B.8
C.9
D.10
答案问询微信:424329

(51)在位运算中,操作数每右移一位,其结果相当于( ).
A.操作数乘以2
B.操作数除以2
C.操作数除以4
D.操作数乘以4
答案问询微信:424329

(52)以下叙述中不正确的是( ).
A.预处理命令行都必须以#号开始
B.在程序中凡是以#号开始的语句行都是预处理命令行
C.C程序在执行过程中对预处理命令行进行处理
D.以下是正确的宏定义#define?? IBM-PC
答案问询微信:424329

(53)以下符合C语言语法的赋值表达式是( ).
A.d=9+e+f=d+9
B.d=9+e,f=d+9
C.d=9+e,e++,d+9
D.d=9+e++=d+7
答案问询微信:424329

(54)下面四个选项中,均是不正确的八进制数或十六进制数的选项是( ).
A.0160x8f018
B.oabc0170xa
C.010-0x110x16
D.0a127ff-123
答案问询微信:424329

(55)在C语言中,char型数据在内存中的存储形式是( )。
A.补码
B.反码
C.源码
D.ASCII码
答案问询微信:424329

(56)以下关于运算符优先顺序的描述中正确的是( ).
A.关系运算符<算术运算符<赋值运算符<逻辑与运算符
B.逻辑与运算符<关系运算符<算术运算符<赋值运算符
C.以赋值运算符<逻辑与运算符<关系运算符<算术运算符
D.算术运算符<关系运算符<赋值运算符<逻辑与运算符
答案问询微信:424329

(57)以下能正确计算1*2*3*……*10的程序是( ).
A.dos=s*i;i++;???????????????????????????????????????????? }while(i=10);
B.do{i=1;s=0;s=s*i;?????????????????????????????????????????????????????????????????????????????????????? i++;}while(i=10);
C.i=1;s=1;do{s=s*i;i++;?}while(i=10);
D.i=1;s=0;??????????????????????????????????????? do{s=s*i;i++;}while(i=10);
答案问询微信:424329

(58)fwrite函数的一般调用形式是( ).
A.fwrite(buffer,count,size,fp) ;
B.fwrite(fp,size,count,buffer) ;
C.fwrite(fp,count,size,buffer) ;
D.fwrite(buffer,size,count,fp) ;
答案问询微信:424329

(59)已知各变量的类型说明如下:????????? Int?? i=8,k,a,b;????????? Unsigned long?? w=5;????????? 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)
答案问询微信:424329

(60)以下对二维整形数组a的正确说明是( )。
A.inta[3][];
B.float a(3,4);
C.double a[1][4];
D.float a(3)(4);
答案问询微信:424329

(61)设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是( ).
A.’x’&&’y’
B.x<=y
C.x||y+z&&y-z
D.!((x<y)&&!z ||1)
答案问询微信:424329

(62)以下程序的运行结果是?? ( ?)#include “stdio.h”union pw{int I? char ch[2];?}a;?main()?{ch[0]=13;ch[1]=0;printf(“%d ”,a,i);????????????????? } (1 分)
A.13
B.14
C.208
D.209
答案问询微信:424329

(63)设有如下定义:????????? struct? sk?????????? {int n;???????????? float x;??????????? }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;
答案问询微信:424329

(64)fseek函数的正确调用形式是( ).
A.fseek(文件类型指针,起始点,位置量);
B.fseek(fp,位置量,起始点);
C.fseek(位置量,起始点,fp);
D.fseek(起始点,位置量,文件类型指针);
答案问询微信:424329

(65)以下正确的叙述是(奥鹏期末考核 ).
A.在C程序中,每行中只能写一条语句
B.若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
C.在C程序中,无论是正数还是实数,都能被准确无误的表示
D.在C程序中,%是只能用于正数运算的运算符
答案问询微信:424329

(66)语句(1,2,3,4)的结果是( ?)。
A.1
B.2
C.3
D.4
答案问询微信:424329

(67)若有代数式,则正确的C语言表达式是( )。
A.sqrt (fabs(pow(y,x)+log(y)))
B.sqrt (abs(pow(y,x)+long(y)))
C.sqrt (fabs(pow(x,y)+log(y)))
D.sqrt (abs(pow(x,y)+long(y)))
答案问询微信:424329

(68)下面程序段中,for循环的执行次数是()。????????? char *s=” a18bc”;????????? for (? ;*s! =’’;s++)???? printf(“*”);
A.9
B.5
C.6
D.7
答案问询微信:424329

(69)已有定义 int k=2;int *ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是( )。
A.k=*ptr1+*ptr2;
B.ptr2=k;
C.p1=*p2;
D.*p1=p2;
答案问询微信:424329

(70)根据题目中已给出的数据的输入和输出形式,程序中输入输出语句的正确内容是( )。main(){ int x;float y;pringf(“enter x,y;”)输入语句输出语句}输入形式? enter x,y:2 3.4输出形式? x+y=5.40
A.scanf(“%d,%f”,&x,&y);printf(“x+y=%4.2f”,x+y);
B.scanf(“%d%f”,&x,&y);printf(“x+y=%4.2f”,x+y);
C.scanf(“%d%f”,&x.&y);printf(“x+y=%6.1f”,x+y);
D.scanf(“%d%3.1f”,&x,&y);printf(“x+y=%4.2f”,x+y);
答案问询微信:424329

(71)以下对结构体类型变量的定义中不正确的是( )。
A.#define STUDENT struct student?STUDENT{int num;float age;}std1;
B.struct student{int num;?float age;}std1;
C.struct{int num;float age;}std1;
D.structint num; float age;}student;??? struct student std1;
答案问询微信:424329

(72)以下不是无限循环的愈句为()
A.r(y=0,x=1;x++y;x=i++) I=x
B.for( ; ;x++=I);
C.while(1){x++; }
D.for(I=10; ;I–) sum+=I;
答案问询微信:424329

(73)以下对二维整形数组a进行正确初始化的语句是( )。
A.int a[2][]={{1,01},{5,2,3}};
B.int a[][3]={{1,2,3},{4,5,6}};
C.int a[2][3]={{1,2,3},{4,5},{6}};
D.int a[][3]={{1,0,1},{},{1,1}};
答案问询微信:424329

(74)C语言共用体型变量在程序运行期间?()。
A.所有成员一直驻留在内存中
B.只有一个成员驻留在内存中
C.部分成员驻留在内存中
D.没有成员驻留在内存中
答案问询微信:424329

(75)以下不正确的C语言标识符是()。
A.ABC
B.abc
C.a_bc
D.ab.c
答案问询微信:424329

(76)根据下面的定义,能打印出字母M的语句是()。Struct person{char name[9];??????????? int age;?????????? };struct person class[10]={“John”,17,“Paul”,19,“Mary”,18,“adam”,16}; (1 分)
A.printf(“%c”,class[3].name);
B.printf(“%c”,class[3].name[1]);
C.printf(“%c”,class[2].name[1]);
D.printf(“%c”,class[2].name[0]);
答案问询微信:424329

(77)若有定义:int a=7; float x=205 ,y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值是()。
A.2.500000
B.2.750000
C.3.500000
D.0.000000
答案问询微信:424329

(78)若有以下定义和语句;?????????? struct student?????????? {int age;???????????? int num ;???????????? };??????????? struct student stu [3]={{1001,20 },{1002,19},{1003,21}};??????????? main()??????????? {struct student *p;???????????? p=stu;???????????? …..? ???????????? }??????? 则以下不正确的引用是( )。
A.(P++)—》 num
B.p++
C.(*p).num
D.p=&stu.age
答案问询微信:424329

(79)C语言的编译系统对宏命令的处理是( )。
A.在程序运行时进行的
B.在程序连接时进行的
C.和C程序中的其它语句同时进行编译的
D.在对源程序中的其它语句同时进行编译的
答案问询微信:424329

(80)设n=10,i=4、则赋值运算n%=i+1执行后,n的值是( ). (1 分)
A.0
B.3
C.2
D.1
答案问询微信:424329

(81)下面程序( )。1 main()2 {3 int a[3]={0};4 int I;5 for(I=0;I3;I++)scanf(“%d”,&a[I]);6 for(I=I;I4;I++)a[0]=a[0]+a[I];7 printf(“%d ”,a[0]);8}
A.没有错误
B.第3行有错误
C.第5行有错误
D.第6行有错误
答案问询微信:424329

(82)下面程序段的运行结果是( ).for(y=1;y10;) y=((x=3*y,x+1),x-1);printf(“x=%d,y=%d”,x,y);
A.x=27,y=27
B.x=12,y=13
C.x=15,y=14
D.x=y=27
答案问询微信:424329

(83)以下程序的运行结果是(? )#include”stdio.h”#define FUDGE(y)??? 2.84+y#define PR(a)???????? printf(“%d”,(int)(a))#define PRINT1(a)??? PR(a);put char(‘ ’)main(){int x=2;PRINT1(FUDGE(5)*x);}
A.11
B.12
C.13
D.15
答案问询微信:424329

(84)若有说明语句: char c=‘72’; 则变量c( )。
A.包含1个字符
B.包含2个字符
C.包含3个字符
D.说明不合法,c的值不确定
答案问询微信:424329

(85)若I为整型变量,则以下循环执行次数是(? )。for(I=2;I==1)? printf(“%d”,I–); (1 分)
A.无限次
B.0次
C.1次
D.2次
答案问询微信:424329

(86)以下C程序正确的运行结果是( )。main(){long y=23456;printf(“y=%3xn ”,y);printf(“y=%8x n”,y);printf(“y=%#8x n”,y);}}
A.y = 5ba0y = ︼ ︼ ︼ ︼5ba0y = ︼ ︼0x5ba0
B.y = ︼ ︼ ︼5ba0y = ︼ ︼ ︼ ︼ ︼ ︼ ︼5ba0y =︼ ︼0x5ba0
C.y = 5ba0y = 5ba0y = 0x5ba0
D.y = 5ba0y = ︼ ︼ ︼ ︼5ba0y = # # # #5ba0
答案问询微信:424329

(87)已知x=43,ch=’A’,y=0;则表达式(x>=y6&&ch(‘B’ &&! Y)的在值是( )。
A.0
B.语法错
C.1
D.“假”
答案问询微信:424329

(88)以下程序有错,错误的原因是( )。???????? main()???????? {int *p,i;char *q,ch;???? p=q=?*p=40;?*p=*q;?.?.?.}
A.p和q的类型不一致,不能执行*p=*q;语句
B.*p中存放的是地址值,因此不能执行*p=40;语句
C.q没有指向具体的存储单元,所以*q没有实际意义
D.q虽然指向了具体的存储单元,但该单元中没有确定的值,所以不能执行*p=*q;语句
答案问询微信:424329

(89)变量的指针,其含义是指该变量的( )。
A.地址
B.名
C.一个标志
答案问询微信:424329

(90)以下程序的运行结果是(? )。#include “stdio.h”main(){struct data? {int year,month,day;? }today;? printf(“%d ”,sizeof(struct data));}
A.6
B.8
C.10
D.12
答案问询微信:424329

(91)若要利用下面的程序片段使指针变量p指向一个存储整型变量的存储单元,则[? ]中应填入的内容是(??? ??? )。Int*p;P=[? ]malloc(sizeof(int));
A.int
B.int*
C.(*int)
D.(int*)
答案问询微信:424329

(92)设C语言中,一个int型数据类型在内存中占2个字节,则unsigned int型数据的取值范围为( )。
A.0~255
B.0~32767
C.0~65535
D.0~2147483647
答案问询微信:424329

(93)若有宏定义:#define MOD(x,y) x%y则执行以下语句后的输出为(? )。????????? Int z,a=15,b=100;????????? Z=MOD(b,a);????????? Printf(“%d ”,z++);
A.11
B.10
C.6
D.宏定义不合法
答案问询微信:424329

(94)如果a=1,b=2,c=3,d=4,则条件表达式a<b?a:c<d?c:d的值为( )。
A.1
B.2
C.3
D.4
答案问询微信:424329

(95)下面四个选项中,均是合法整形常量的选项是( )。
A.160-0xffff011?
B.-0xcdf01a0xe
C.-01986,0120668
D.-0x48a2e50x
答案问询微信:424329

(96)设有以下说明语句struct stu?? {int a;??? float b;?? }stutype;则下面的叙述不正确的是( )。
A.struct是结构体类型的关键字
B.struct stu是用户定义的结构体类型
C.stutype是用户定义的结构体类型名
D.a和b都是结构体成员名
答案问询微信:424329

(97)以下正确的描述是( )。
A.C语言的预处理功能是指定完成宏替换和包含文件的调用
B.预处理指令只能位于C源程序文件的首部
C.凡是C源程序中行首以“#”标识的控制行都是预处理指令
D.C语言的编译预处理就是对源程序进行初步的语法检查
答案问询微信:424329

(98)若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是( )。
A.“ab+”
B.“wb+”
C.“rb+”
D.“ab”
答案问询微信:424329

(99)判断char型变量cl是否为小写字母的正确表达式为( )。
A.’a’<=c1<=f’z’
B.(c1>=a)&&(c1<=z)
C.(‘a’>=c1)? (‘z’<=c1)
D.(c1>=’a’)&&(c1<=’z’)
答案问询微信:424329

(100)C语言派程序的基本单位是(?? )。
A.过程
B.函数
C.子程序
D.标识符
答案问询微信:424329

(101)下面程序段的运行结果是( ).for(x=3,x6;x++) printf((x%2)?(“##%d ”),x);
A.**3
##4
**5

**5
B.##3
**4
##5

C.##3
**4##5
D.**3##4
**5
答案问询微信:424329

(102)若有说明:int *p1,*p2,m=5,n;以下均是正确赋值语句的选项是( )。
A.p1=p2=
B.p1=p2=*p1=*p2;
C.p1=p2=p1
D.p1=*p2=*p1;
答案问询微信:424329

(103)以下程序的运行结果是( )。#define MIN(x,y)?? (x)(y)?(x):(y)main(){int i=10,j+15,k;k+10*MIN(i,j);printf(“%d ”,k);}
A.10
B.15
C.100
D.150
答案问询微信:424329

(104)下面程序段的运行结果是( )。????????? char *s=”abcde”;????????? s+=2; printf(“%d”,s);
A.cde
B.字符’c’
C.字符’c’的地址
D.无确定的输出结果
答案问询微信:424329

(105)在“文件包含”预处理语句的使用形式中,当#include后面的文件名用“”括起时,寻找被包含文件的方式是(? )。
A.直接按系统设定的标准方式搜索目录
B.先在源程序所在目录搜索,再按系统设定的标准方式搜索
C.仅仅搜索源程序所在目录
D.仅仅搜索在前目录
答案问询微信:424329

(106)fscanf函数的正确调用形式是( )。
A.fscanf(fp,格式字符串,输出表列);
B.fscanf(格式字符串,输出表列,fp);
C.fscanf(格式字符串,文件指针,输出表列);
D.fscanf(文件指针,格式字符串,输入表列);
答案问询微信:424329

(107)若有说明:int? a[3][4];则数组a中各元素( )。
A.可在程序的运行阶段得到初值0
B.可在程序的编译阶段得到初值0
C.不能得到确定的初值
D.可在程序的编译或运行阶段得到初值0
答案问询微信:424329

(108)以下程序输出的结果是( )void main(){? int a=5,*p1,**p2;?? p1=&a,p2=?? (*p1)++;?? printf(“%d ”,**p2);}
A.5
B.4
C.6
D.不确定
答案问询微信:424329

(109)以下正确的c语言标识符是(?? ?)。
A.%x
B.a十b
C.a123
D.test!
答案问询微信:424329

(110)以下for循环是(?? ?)。
A.r(x=0,y=0;(y!=123)&&(x4);x++);
B.无限循环
C.循环次数不定
D.执行4次
E.执行3次
答案问询微信:424329

(111)若有说明:int? a[3][4];则对a数组元素的非法引用是( )。
A.a[0][2*1]
B.a[1][3]
C.a[4-2][0]
D.a[0][4]
答案问询微信:424329

(112)若执行fopen函数时发生错误,则函数的返回值是( )。
A.地址值
B.0
C.1
D.EOF
答案问询微信:424329

(113)若有以下宏定义:????????????? #define?? N? 2????????????? #define Y(n) ((N+1)*n)则执行语句z=2*(N+Y(5));后的结果是( )。
A.语句有错误
B.z=34
C.z=70
D.z无定值
答案问询微信:424329

(114)以下对一维整形数组a的正确说明是( )。
A.int a(10);
B.int n=10,a[n];
C.int n;scanf(“%d”,&n);int a[n];
D.#define SIZE 10int a[SIZE];
答案问询微信:424329

(115)sizeof(float)是( )。
A.一个双精度型表达式
B.一个整型表达式
C.一种函数调用
D.一个不合法的表达式
答案问询微信:424329

(116)若运行以下程序时,从键盘输入2473CR(CR表示回车),则下面程序的运行结果是( ).#includestdio.hmain(){int c;while((c=getchar())!=’ ’)switch(c-‘2’){case 0:case1: putchar(c+4); case2: putchar(c+4);breakcase3: putchar(c+3);default: putchar(c+2);break;}printf(“ ”);}
A.668977
B.668966
C.66778777
D.6688766
答案问询微信:424329

(117)以下程序的正确运行结果是(? )。#include stido.hvoid num(){extern int x,y;int a=15,b=10;x=a-b;y=a+b;}int x,y;main(){ int a=7,b=5;x=a+b;y=a-b;num();printf(“%d,%d ”,x,y);}
A.12,2
B.不确定
C.5,25
D.1,12
答案问询微信:424329

(118)表达式~0x13的值是( )。
A.0xFFEC
B.0xFF71
C.0xFF68
D.0xFF17
答案问询微信:424329

(119)一个C语言程序是由(? )。
A.一个主程序和若干子程序组成
B.函数组成
C.若干过程组成
D.若干子程序组成
答案问询微信:424329

(120)函数rewind的作用是( )。
A.使位置指针重新返回文件的开头
B.将位置指针指向文件中所要求的特定位置
C.使位置指针指向文件的末尾
D.使位置指针自动移动到下一个字符位置
答案问询微信:424329

(121)以下C程序正确的运行结果是( )。???????? main()???????? {long y=-43456;????????? printf(“y=%-8ld ”,y);????????? printf(“y=%-08ld ”,y);printf(“y=%08ld ”,y);printf(“y=%+8ld ”,y);}
A.y=? -43456y=-? 43456y=-0043456y=-43456
B.y=-43456y=-43456y=-0043456y=+ 43456
C.y=-43456y=-43456y=-0043456y=? -43456
D.y=? -43456y=-0043456y=00043456y=+43456
答案问询微信:424329

(122)以下程序的输出结果是( )。??????????? Struct stu ???????????? {int x;???????????????? int*y;?????????????? } *p;???????????? int dt[4] ={10,20,30,40};???????????? struct stu a[4]={50,&dt[0],60,&dt[1],????????????? ?????????????????????????? 70,&dt[2],80,&dt[3]????????? ????????????????????????? };????????????? main()????????????? {p=a;?????????????? printf(“%d,”,++p-x);?????????????? printf(“%d,”,(++p)-x);?????????????? printf(“%d ”,++(*p -y));???? ???? }
A.10,20,20
B.50,60,21
C.51,60,21
D.60,70,31
答案问询微信:424329

(123)没有,int a=1,b=2,c=3,d=4,m=2,n=2执行? (m=ab&&(n=cd)后n的值为( )。
A.1
B.2
C.3
D.4
答案问询微信:424329

(124)下面有关for循环的正确描述是(? ?? )。
A.for循环只能用于循环次数已经确定的情况
B.for循环是先执行循环体语句,后判定表达式
C.在for循环中,不能用break语句跳出循环体
D.for循环体语句中,可以包含多条语句,但要用花括号括起来
答案问询微信:424329

(125)当说明一个结构体变量时系统分配给它的内存是( )。 (1 分)
A.各成员所需内存量的总和
B.结构中第一个成员所需内存量
C.成员中占内存量最大者所需的容量
D.结构中最后一个成员所需内存量
答案问询微信:424329

(126)以下结果为整数的表达式(设有int i;char c;float f;)( )。
A.i十f
B.i*c
C.c十f
D.i十c十f
答案问询微信:424329

(127)下面程序的运行结果是(  )。#includestdio.hmain(){int i,b,k=0;?for(i=1;i=5;i++)?? {b=i%2;???? while(b- -=0) k++;}printf(“%d,%d”,k,b);}
A.3,-1
B.8,-1
C.3,0
D.8,-2
答案问询微信:424329

(128)以下程序的运行结果是? (? )?。????????? #include “stdio.h”????????? main()????????? { union {long a;????????????????? int b;????????????????? char c;}m;? printf(“%d ”,sizeof(m));}
A.2
B.4
C.6
D.8
答案问询微信:424329

(129)以下不是C语言的特点的是( ? )。
A.C语言简洁、紧凑
B.能够编制出功能复杂的程序
C.C语言可以直接对硬件进行操作
D.C语言移植性好
答案问询微信:424329

(130)以下不正确的叙述是( )。
A.在C程序中,逗号运算符的优先级最低
B.在C程序中,APH和aph是两个不同的变量
C.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
D.当从键盘输入数据时,对于整形变量只能输入整形数值,对于实型变量只能输入实型数值
答案问询微信:424329

(131)C语言规定,数组名做实参时,它和对应形参之间的数据传递方式是()
A.用户指定传递方式
B.无传递
C.单向值传递
D.地址传递
答案问询微信:424329

(132)设int a=04,b;则执行b=a>>1;语句后,b的结果是(? )。
A.04
B.4
C.10
D.2
答案问询微信:424329

(133)若有以下说明和语句,则 对中域的正确引用方式是( )。????????? Struct pupil ?????????? {char?? name [20 ;?????????????? int sex;??????????? }pup,*p;??????????? p=
A.p.pup.sex
B.p-pup.sex
C.(*p).pup.sex
D.(*p).sex
答案问询微信:424329

(134)阅读以下程序及对程序功能的描述,其中正确的描述是( )。???????? #includestdio.h???????? main()???????? {???????? file *in, *out ;???????? char ch,infile[10],outfile[10] ;???????? scanf(“%s”,infile) ;???????? printf(“Enter the infile name : ”) ;?? ???????? scanf(“%s”,outfile) ;???????? if(in=fopen(infile,”r”))==NULL)?????????? {???????????? printf(“cannot open infile ”) ;???????????? exit(0) ;??????????? }????????? if((out=fopen(outfile,”w”))==NULL)???????????? {????????????? Printf(“cannot open outfile ”) ;????????????? Exit(0) ;???????????? }????????? while(!? Feof(in)fputc(fgetc(in),out) ;????????? fclose(in) ;????????? fclose(out) ;}
A.程序完成将磁盘文件的信息在屏幕上显示的功能
B.程序完成将两个磁盘文件和二为一的功能
C.程序完成将一个磁盘文件复制到另一个磁盘文件中
D.程序完成将两个磁盘文件合并且在屏幕上输出
答案问询微信:424329

(135)有如下程序,若要求a1、a2、c1、c2的值分别为10、20、A、B,正确的数据输入是( ).main(){int a1,a2;char c1,c2;scanf("%d%d",&a1,&a2);scanf("%c%c",&c1,&c2):}
A.1020ABCR
B.10 20CRABCR
C.10 20 ABCCR
D.10 20ABCR
答案问询微信:424329

(136)下面程序段的运行结果是( )?????? int n=0;?????? while(n++=2);? printf(“%d”,n);
A.2
B.3
C.4
D.有语法错
答案问询微信:424329

(137)以下程序的正确运行结果是(? ).#includestdio.hmain(){ int k=4,m=1,p;?p=func(k,m);printf(“%d,”,p);?p=func(k,m);printf(“%d ”,p);}func(int a,int b){ static int m=0,i=2;? i+=m+1;? m=i+a+b;? return(m);}
A.8,17
B.8,16
C.8,20
D.8,8
答案问询微信:424329

(138)若已定义int a=5;下面对(1),(2)两个语句的正确解释是( )。(1)int *p=??? (2) *p=a;
A.语句(1)和(2)中的 *p含义相同,都表示给指针变量p赋值
B.(1)和(2)语句的执行结果,都是把变量a的地址值赋给指针变量p
C.(1)在对p进行说明的同时进行初始化,使p指向a(2)将变量a的值赋给指针变量p
D.(1)在对p进行说明的同时进行初始化,使p指向a(2)将变量a的值赋于*p
答案问询微信:424329

(139)若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是( )。
A.2
B.3
C.4
D.无确定值
答案问询微信:424329

(140)在16位IBM-PC机上使用C语言,若有如下定义:? union data ???? {int i;????? char ch;????? double f;????? }b;????????? 则共用体变量 占用内存的字节数是( )。
A.1
B.2
C.8
D.11
答案问询微信:424329

(141)能正确表示“当x的取值在Ll,10]秆L200,210]范围内为真,否则为假’达式是?( ) 。
A.(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)
B.(x>=1) ||(x<=10)︳︳(x>=200)︳︳ (x<=210)
C.(x>=1)&&(x<=lo) ︳︳(x>=20Q)&&(x<=210)
D.(x>=1) ︳︳(x<=10)&&(x>=200) ︳︳(x<;210)
答案问询微信:424329

(142)在16位IBM-PC机上使用C语言,若有如下定义:? struct data{int i;char ch;double f;}b;则结构变量b占用内存的字节数是( ).
A.1
B.2
C.3
D.4
答案问询微信:424329

(143)在C语言中,一位数组的定义方式为:类型说明符 数组名( )。
A.[常量表达]
B.整型表达式
C.[整型常量]或[整型表达式]
D.[整型常量]
答案问询微信:424329

(144)以下程序的正确运行结果是().#define MAX 10int a[MAX],I;main(){printf(“ ”);sub1();sub3(a);sub2();sub3(a);}sub2(){int a[MAX],I,max;max=5;for(I=0;Imax;I++) a[I]=I;}sub1(){for(I=0;I MAX;I++) a[j]=I+1;}sub3(int a[]){int I;for(I=0;IMAX;I++) printf(“%d”,a[I]);printf(“ ”);}
A.0 2 4 6 8 10 12 14 16 18 0 1 2 3 4
B.0 1 2 3 40 2 4 6 8 10 12 14 16 18
C.0 1 2 3 4 5 6 7 8 90 1 2 3 4
D.0 2 4 6 8 10 12 14 16 180 2 4 6 8 10 12 14 16 18
答案问询微信:424329

(145)下列四组选项中,均不是C语言关键字的选项是( )。
A.define??????? i ftype
B.getc????? char??????????? printf
C.include???sanfcase
D.while???? gopow
答案问询微信:424329

(146)在位运算中,操作数每左移一位,其结果相当于( )。
A.操作数乘以2
B.操作数除以2
C.操作数除以4
D.操作数乘以4
答案问询微信:424329

(147)下列四个选项中,均是C语言关键字的选项是( )。
A.autoenuminclude
B.switchtypedefcontinue
C.signedunionscanf
D.ifstructtype
答案问询微信:424329

(148)以下不正确的定义语句是( )。
A.double x[5]={2.0,4.0,6.0,8.0,10.0};
B.int y[5]={0,1,3,5,7,9};
C.char c1[]={‘1’,’2’,’3’,’4’,’5’};
D.char c2[]={‘x10’,’xa’,’x8’};
答案问询微信:424329

(149)设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是( )。
A.c=*p1+p2;
B.p2=c
C.p1=p2
D.c=*p1*(*p2);
答案问询微信:424329

(150)编辑程序的功能是(? ? )。
A.建立并修改程序
B.将c源程序编译成目标程序
C.调试程序
D.命令计算机执行指定的操作
答案问询微信:424329

(151)在一个c源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是( )。
A.extern
B.register
C.auto
D.static
答案问询微信:424329

(152)以下for循环的执行次数是( ).??? for(x=0,y=0;(y=123)&&(x4);x++);
A.是无限循环
B.循环次数不定
C.执行4次
D.执行3次
答案问询微信:424329

(153)以下可作为函数fopen中第一个参数的正确格式是( )。
A.c:user ext.txt
B.c:user ext.txt
C.user ext.txt
D.cusertext.txt
答案问询微信:424329

(154)若有说明:int *p,m=5,n; 以下正确的程序段是( )。
A.p=scanf(“%d”,&p);
B.p=scanf(“%d”,*p);
C.scanf(“%d”,&n);*p=n;
D.p=*p=m
答案问询微信:424329

(155)若有语句int *point,a=4;和point= 下面均代表地址的一组选项是( )。
A.a,point,*&a
B.&*a,&a,* point
C.*&point,*point,&a
D.&a,&*point,point
答案问询微信:424329

(156)若有以下定义和说明:???????? #include“stdio.h”???????? struct std???????? { char num[6];????????? char name[8];????????? float mark[4];???????? }a[30];????????? FILE? *fp;???????? 设文件中以二进制形式存有10个班的学生数据,且已正确打开,文件指针定???????? 位于文件开头。若要从文件中读出30个学生的数据放入a数组中,以下不能???????? 此功能的语句是( )。
A.for(i=0;i30;i++)fread( &a[i], sizeof( struct std ), 1L, fp );
B.for(i=0; i30;? i++,? i++)fread( a+i, sizeof( struct std ), 1L,fp );
C.fread( a, sizeof( struct std ), 30L,fp );
D.for( i=0; i30; i++ )fread( a[i], sizeof( struct std ), 1L,fp );
答案问询微信:424329

(157)已知学生记录描述为???????? struct student{int no;?char name[20];char set;struct?? {int year;??? int month;??? int day;?? }birth;};?????? struct student s;设变量s中的“生日”应是“1984年11月11日”,下列对生日的正确赋值方式是( )。
A.year=1984;month=11;? day=11;
B.birth.year=1984;birth.month=11;birth.day=11;
C.s.year=1984;s.month=11;s.day=11;
D.s.birth.year=1984;s.birth.month=11;s.birth.day=11;
答案问询微信:424329

(158)若有代数式3ae/bc,则不正确的C语言表达式是( )
A.a/b/c*e*3
B.3*a*e/b/c
C.3*a*e/b*c
D.a*e/c/b*3
答案问询微信:424329

(159)以下C程序正确的运行结果是( ).
main()
{int y=2456;
printf(“y=%3o ”,y);
printf(“y=%8o ”,y);
printf(“y=%#8o|n”,y);
}
A.y= 2456
y= 2456
y=########2456
B.y= 4630
y= 4630
y=########4630
C.y=2456
y= 2456
y= 02456
D.y=4630
y= 4630
y= 04630
答案问询微信:424329

(160)设有以下结构体类型: struct st { char name[8]; int num; float s[4]; }student[50]; 并且结构体数组student中的元素都已有值,若要将这些元素写到硬盘 文件fp中,以下不正确的形式是( )。
A.fwrite( student, sizeof( struct st ), 50, fp );
B.fwrite( student, 50*sizeof( struct st ), 1, fp );
C.fwrite( student, 25*sizeof( struct st ), 25, fp );
D.for( i=0;i50; i++)fwrite( student+i, sizeof( struct st ), 1, fp );
答案问询微信:424329

(161)若有说明:int? a[3][4]={0};则下面正确的叙述是( )。
A.只有元素a[0][0]可得到初值0
B.此说明语句不正确
C.数组a中各元素都可得到初值,但其值不一定为0
D.数组a中每个元素均可得到初值0
答案问询微信:424329

(162)若要求的值分别为10、20、A、B,正确的数据输入是( )。
A.10A 20BCR
B.10 A 20 BCR
C.10 A20BCR
D.10A20 BCR
答案问询微信:424329

(163)对以下说明语句的正确理解是( )。int a[10]={6,7,8,9,10};
A.将5个初值依次赋给a[1]至a[5]
B.将5个初值依次赋给a[0]至a[4]
C.将5个初值依次赋给a[6]至a[10]
D.因为数组长度与初值的个数不同,所以此语句不正确
答案问询微信:424329

(164)若以下程序段:????????? struct dent? ????????? { int n;???????????? int*m;??????????? };?????????? int a=1, b=2,c=3;?????????? struct dent s[3]={{101&a},{102&b},{103,&c}};?????????? main()??????????? {???????????? struct dent *p;????????????? p=s;????????????? …..????????????? } ?????????????? 则以下表达中值为2的是(? )。
A.(p++)-m
B.*(P++)-m
C.(*p).m
D.*(++p)-m
答案问询微信:424329

(165)以下程序的输出结果为( )。#definePT??? 5.5#defineS(x)?? PT*x*xmain(){inta=1,b=2;printf("%4.1 ",S(a+b));}
A.12.0
B.9.5
C.12.5
D.33.5
答案问询微信:424329

(166)根据定义和数据的输入方式,输入语句的正确形式为( )。已有定义:float f1,f2;数据的输入方式:4.523.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);
答案问询微信:424329

(167)下面程序( )。(每行程序前面的数字表示行号)。???????????????? 1? main()???????????????? 2? {???????????????? 3??? int a[3]={3*0};???????????????? 4??? int i;???????????????? 5?? for(i=0;i3;i++) scanf("%d",&a[i]);???????????????? 6?? for(i=1;i3;i++) a[0]=a[0]+a[i];???????????????? 7??? printf("%d ",a[0]);???????????????? 8? }
A.第3行有错误
B.第7行有错误
C.第5行有错误
D.没有错误
答案问询微信:424329

(168)以下程序段中存在错误的是( )。
A.#define array_size? 100Int array1[array_size];
B.#define PI?? 3.14159#define S(r)? PI*(r)*(r)………Area=S(3.2);
C.#define PI? 3.14159#define S(r)? PI*(r)*(r)………Area=S(a+b);
D.#define PI? 3.14159#define S(r)? PI*(r)*(r)…………..Area=S(a);…
答案问询微信:424329

多选题:
(1)C语言中函数返回值的类型与下列哪项无关?
A.定义函数时所指定的函数类型
B.调用函数时临时
C.调用该函数的主函数类型
D.return语句中的表达式类型
答案问询微信:424329

(2)已知:int x,a,b;下列选项中正确的if语句是______。
A.if(a=b) x++;
B.if(a=b) x++;
C.if(a-b) x++;
D.if(x) x++;
答案问询微信:424329

(3)下列说法不正确的是______。
A.C程序由符号构成
B.C程序由标识符构成
C.C程序由函数构成
D.C程序由C语句构成
答案问询微信:424329

(4)以下对C语言函数的有关描述中,错误的是:______。
A.调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B.函数既可以嵌套定义又可以递归调用
C.函数必须有返回值,否则不能使用函数
D.程序中有调用关系的所有函数必须放在同一个源程序文件中
答案问询微信:424329

(5)对函数的正确使用方法描述
A.用数组做函数参数时,必须在主调函数和被调函数中分别定义数组
B.实参数组元素和形参数组元素类型可以不一致
C.形参数组长度可以不指定
D.形参数组长度可以大于实参数组长度
答案问询微信:424329

(6)下列字符中能构成标识符的是______。
A.数字字符
B.连接符
C.下划线字符
D.大写字母
答案问询微信:424329

(7)以下叙述中正确的是______。
A.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
C.可以通过赋初值的方式确定数组元素的个数
D.数组名代表的是数组所占存储区的首地址,其值不可改变
答案问询微信:424329

(8)关于静态局部变量的说明正确的是______。
A.静态局部变量存储在静态存储区
B.静态局部变量是在编译时赋初值的,即只赋一次值,在程序运行时它已有初值
C.若在定义局部变量时不赋初值,则编译时自动赋初值为0或空字符
D.虽然静态局部变量在函数调用结束后仍然存在,但其他函数是不能引用它的
答案问询微信:424329

(9)内存中供用户使用的存储空间可分为:______。
A.程序区
B.静态存储区
C.动态存储区
D.数据存储区
答案问询微信:424329

(10)以下不正确的描述是______。
A.函数的定义可以嵌套,函数的调用不可以嵌套
B.函数的定义不可以嵌套,函数的调用可以嵌套
C.函数的定义和函数的调用均可以嵌套
D.函数的定义和函数的调用均不可以嵌套
答案问询微信:424329

(11)不与while(x)语句中的x等价的是_____。
A.x= =0
B.x= =1
C.x!=1
D.x!=0
答案问询微信:424329

(12)带参宏定义与函数的区别是:______。
A.函数调用时,先求出实参表达式的值,然后代入形参,带参的宏只是进行简单的字符替换
B.函数调用是在程序运行时为形参分配临时的存储单元,而宏展开是在编译前进行的
C.宏不存在类型问题,宏名和参数都不存在类型问题
D.调用函数只能得到一个返回值,而使用宏可设法得到几个结果
答案问询微信:424329

(13)关于宏定义的说法正确的是:
A.p宏名一般习惯用大写字母表示,以便与变量名相区别/p
B.使用宏名代替一个字符串,可以减少程序中重复书写某些字符串的工作量
C.宏定义是用宏名代替一个字符串,也就是简单的置换,不作正确性检查
D.宏定义不是C语句,不必在行末加分号
答案问询微信:424329

(14)下列描述正确的是
A.由main 函数及其参数argc和* argv[]可以实现命令行方式
B.使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中
C.字符数组并不要求它的最后一个字符是
D.A和A都是字符串常量
答案问询微信:424329

(15)关于文件的打开方式描述正确的是:______。
A.r:打开只读文件
B.a+:打开或建立用于更新数据的文件,数据追加到文件尾
C.a:打开或建立一个把数据追加到文件尾的文件
D.r+:打开用于更新数据的文件
答案问询微信:424329

(16)以下对一维数组a进行初始化,错误的语句是______。
A.int a[10]=(0,0,0,0,0);
B.int a[10]={};
C.int a[10]={0};
D.int a[2]={10,9,8}
答案问询微信:424329

(17)以下正确的C语言标识符是_____。
A.ABC
B.abc
C.a_bc
D.ab.c
答案问询微信:424329

(18)C提供的预处理功能主要有______。
A.宏定义
B.文件包含
C.条件编译
D.异常终止
答案问询微信:424329

(19)以下说法不正确的是______。
A.定义函数时,形参的类型说明可以放在函数体内
B.return后边的值不能为表达式
C.如果函数值的类型与返回值表达式的类型不一致,以函数值类型为准
D.如果形参与实参的类型不一致,以实参类型为准
答案问询微信:424329

(20)函数调用可以______。
A.出现在一个表达式中
B.出现在执行语句中
C.作为一个函数的实参
D.作为一个函数的形参
答案问询微信:424329

(21)以下不正确的叙述是______。
A.C语言的主函数是无参函数
B.C语言的主函数最多允许有1个参数
C.C语言的主函数最多允许有2个参数
D.C语言的主函数可以有2个以上参数
答案问询微信:424329

(22)在文件操作中,用于检测和设置文件状态的函数有______。
A.文件结束检测函数feof()
B.读写文件出错检测函数ferror()
C.文件出错和结束标志文件函数才clearerr()
D.文件关闭函数fclose()
答案问询微信:424329

(23)若有以下定义和语句:double r=99,*p=&r; *p=r;则以下不正确的叙述是:______
A.以上两处的*p含义相同,都说明给指针变量p赋值
B.语句“*p=r;”把变量r的地址值赋给指针变量p
C.语句“*p=r;”取变量r的值放回r中
D.在“double r=99,*p=&r;”中,把r的地址赋值给了p所指的存储单元
答案问询微信:424329

(24)在C语言中,正确的int类型的常数是:______。
A.0
B.32768
C.037
D.0xaf
答案问询微信:424329

(25)在缓冲文件系统中用于读写的函数有
A.putchar ()
B.fread()
C.rewind ()
D.purw()
答案问询微信:424329

(26)下列说法中错误的是______。
A.不允许设置参数的默认值
B.设置参数的默认值只能在定义函数时设置
C.设置参数的默认值时,应该设置右边的参数
D.设置参数的默认值时,应该全部参数都设置
答案问询微信:424329

(27)对静态变量的正确描述
A.静态局部变量在静态存储区内分配单元
B.静态外部变量可以赋初值,也可以不赋初值
C.静态外部变量的作用与外部变量相同
D.静态局部变量在函数调用结束时,仍保存其值,不会随着消失。
答案问询微信:424329

(28)关于实参和形参的说法正确的是______。
A.在定义函数中指定的形参,在未出现函数调用时,它们并不占内存中的存储单元
B.实参可以是变量、常量或表达式
C.实参与形参的类型应相同或赋值兼容
D.实参变量对形参变量的数据传递是“值传递”
答案问询微信:424329

(29)已知:int x;,则下面的说明指针变量pb的语句______不是正确的。
A.int pb=&x;
B.int *pb=x;
C.int *pb=&x;
D.*pb=*x
答案问询微信:424329

(30)下列关于#include命令的叙述中,正确的是______。
A.一个#include命令中只能指定一个被包含文件
B.一个#include命令中可以指定多个被包含文件
C.一个被包含文件中又可以包含另一个被包含文件
D.#include命令中,文件名可以用双引号或尖括号括起来
答案问询微信:424329

(31)以下______是正确的转义字符。( )
A.‘\'
B.‘’
C.‘81'
D.‘'
答案问询微信:424329

(32)设有如下定义:int (*ptr)();则以下叙述中不正确的是______。
A.ptr是指向一维数组的指针变量
B.ptr是指向int型数据的指针变量
C.ptr是指向函数的指针,该函数返回一个int型数据
D.ptr是一个函数名,该函数的返回值是指向int型数据的指针
答案问询微信:424329

(33)若定义:int a[2][3]{0,2,4,6,8,10};以下描述正确的有
A.A、*(a+1)为元素6的地址
B.B、*(a[1]+1)的值为2
C.C、**(a+1)+2的值为8
D.D、a[0]与a相同
答案问询微信:424329

(34)在动态存储区中主要存放以下数据______。
A.函数形式参数
B.自动变量
C.函数调用时的现场保护和返回地址
D.全局变量
答案问询微信:424329

判断题:
(1)模运算符要求两侧均应为整型数据。( )
答案问询微信:424329

(2)语句int pt中的*pt是指针变量名。
答案问询微信:424329

(3)C程序中各函数之间既允许直接递归调用也允许间接递归调
答案问询微信:424329

(4)静态外部变量既可以在文本文件中引用,也可以在其它文件引用
答案问询微信:424329

(5)C语言中,整常数有三种表示形式:十进制整数,八进制整数,十六进制整数。( )
答案问询微信:424329

(6)一个int型与一个double型数据进行混合运算时,其结果是double型。
答案问询微信:424329

(7)switch语句中,各个case和default的出现次序不影响执行结果。( )
答案问询微信:424329

(8)C程序的执行总是从第一个定义的函数开始
答案问询微信:424329

(9)宏名必须用大写字母表示。
答案问询微信:424329

(10)putchar()函数可以输出一个字符串
答案问询微信:424329

(11)若打开文件的方式为“w”而该文件已经存在,则文件中原有数据被清除。
答案问询微信:424329

(12)switch语句中,多个case可以共用一组执行语句。( )
答案问询微信:424329

(13)主函数和其它函数可以相互调用
答案问询微信:424329

(14)使用符号常量的好处是:一,含义清楚,二,在需要改变一个常量时能做到“一改全改”( )
答案问询微信:424329

(15)宏定义就是用宏名代替一个字符串,也就是简单的置换,不作正确性检查。
答案问询微信:424329

(16)C语言规定标识符可由字母、数字、下划线三种字符组成,第一个字符可以为数字或字母。( )
答案问询微信:424329

(17)函数必须有返回值,否则不能使用函数
答案问询微信:424329

(18)调用函数只可得到一个返回值,而用宏可以设法得到几个结果。
答案问询微信:424329

(19)数据结构指的是数据的组织形式,数组就是一种数据结构( )
答案问询微信:424329

(20)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出。
答案问询微信:424329

(21)使用getchar函数可以不添加#include stdio.h命令。( )
答案问询微信:424329

(22)C语言编译系统在给出逻辑运算结果时,以数值1代表真,以0代表假,但在判断一个量是否为“真”时,以0代表假,以非0代表真。( )
答案问询微信:424329

(23)共用体所占的内存空间大小取决于占空间最多的那个成员变量。
答案问询微信:424329

(24)使用printf和scanf函数时,必须添加#include stdio.h命令。( )
答案问询微信:424329

(25)‘ a’和“a”在内存中所占字节数相同。( )
答案问询微信:424329

(26)puts和gets函数只能输入或输出一个字符串
答案问询微信:424329

(27)for(;;)语句相当于while(1)语句
答案问询微信:424329

提供优质的教育资源

公众号: 超前自学网