【期末高分题集】[吉林大学]《C语言程序设计》考核必备42

奥鹏期末考核

65279–《C语言程序设计》2022年吉林大学期末复习题集

单选题:
(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=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=   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,
答案问询微信: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(   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)一个c程序的执行是从(? ?? ).
A.main(??? )函数开始,直到main(??? )函数结束
B.第一个函数开始,直到最后一个函数结束
C.第一个语句开始,直到最后一个语句结束
D.main(??? )函数开始,直到最后一个函数结束
答案问询微信:424329

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

(40)系统的标准输入文件是指( ).
A.键盘
B.显示器
C.软盘
D.硬盘
答案问询微信:424329

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

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

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

(44)逻辑运算符两侧运算对象的数据类型( ).
A.能是0或1
B.只能是0或非0正数
C.只能是整型或字符型数据
D.可以是任何类型的数据
答案问询微信:424329

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

(46)若二维数组a有m列,则在a[i][j]前面的元素个数为( ).
A.j*m+i
B.i*m+j
C.i*m+j-1
D.i*m+j+1
答案问询微信:424329

(47)已知各变量的类型说明如下:???????? Int??? k,a,b;???????? Unsigned long??? w=5;????????? Double??? w=1.42;???? 则以下不符合C语言与法的表达式是( ).
A.x%(-3)
B.w+=-2
C.k=(a=2,b=3,a+b)
D.a+=a-=(b=4)*(a=3)
答案问询微信:424329

(48)以下程序的运行结果是(? )。?????? #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

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

(50)若调用fputc函数输出字符成功,则其返回值是( ).
A.EOF
B.1
C.0
D.输出的字符
答案问询微信:424329

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

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

(53)设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是( ).
A.n=(n*100+0.5)/100.0
B.m=n*100+0.5, n=m/100.0
C.n=n*100+0.5/100.0
D.n=(n/100+0.5)*100.0
答案问询微信:424329

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

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

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

(57)函数调用语句:fseek(fp,-20L,2);的含义是( ).
A.将文件位置指针移动到距离文件偷0个字节出
B.将文件位置指针从当前位置向后移动20个字节
C.将文件位置指针从文件末尾出向后退20个字节
D.将文件位置指针移动到离当前位置20个字节处
答案问询微信:424329

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

(59)若有说明:int? a[10];则对a数组元素的正确引用是( )。
A.a[10]
B.a[3.5]
C.a(5)
D.a[10-10]
答案问询微信:424329

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

(61)已知各变量的类型说明如下:????????? 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

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

(63)以下程序的运行结果是?? ( ?)#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

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

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

(66)若有说明:int? a[][4]={0,0};则下面正确的叙述是( )。
A.数组a中每个元素均可得到初值0
B.二维数组a的第一维大小为1
C.因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1
D.只有元素a0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
答案问询微信:424329

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

(68)若有代数式,则正确的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

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

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

(71)若有以下定义和语句:????????? union data?????????????? {int i;??????????????? char c;??????????????? float f;?????????????? }a;????????? int n;????????? 则以下语句正确的是(???? )。
A.a=5;
B.a={2,’a’,1.2};
C.printf(“%d”,a);
D.n=a;
答案问询微信:424329

(72)在C语言中,int、char和short三种类型数据在内存中所占用的字节数()。
A.由用户自己定义
B.均为2个字节
C.是任意的
D.有所用的机器的机器字长决定
答案问询微信:424329

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

(74)若有定义: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

(75)下面对typedef的叙述中不正确的是? ( )。
A.用typedef可以定义各种类型名,但不能用来定义变量
B.用typedef可以增加新类型
C.用typedef只是将已存在的类型用一个新的标识符来代表
D.使用typedef有利于程序的通用和移植
答案问询微信:424329

(76)若有以下定义和语句;?????????? 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

(77)下面程序的运行结果是( ).main(){struct cmplx {int x;?????????? int y;?????????? } cnum[2]={1,3,2,7};printf(“%d ”,cnum[0].y/cnum[0].x*cnum[1].x);}
A.0
B.1
C.3
D.6
答案问询微信:424329

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

(79)下面程序段的运行结果是( ).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

(80)已有程序和输入数据的形式,程序中输入语句的正确形式应当为( )。(注:︼表示空格, 表示回车)main(){ int a; float f;printf(“nInput number:”);输入语句printf(“nf=%f,a=%d ”,f,a);} Input number:4.5︼ ︼2
A.scanf(“%d,%f”,
B.scanf(“%f,%d”,
C.scanf(“%d,%f”,
D.scanf(“%f,%d”,
答案问询微信:424329

(81)以下程序的运行结果是(? )#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

(82)若有以下说明和语句,则下面表达式中值为1002的是(?? ?? )。Struct student{int age;?int num;};struct student stu[3]={{1001,20},{1002,19},{1003,21}};struct student *p;p=stu;
A.(p++)—num
B.(p++)—age
C.(*p).num
D.(*++p).age
答案问询微信:424329

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

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

(85)设位段的空间分配由右到左,则以下程序的运行结果是( )。struct packed_bit{unsigned a:2;unsigned b:3;unsigned c:4;int I;} data;main(){data.a=8; data.b=2;printf(“%d ”,data.a+data.b);} (1 分)
A.语法错
B.2
C.5
D.10
答案问询微信:424329

(86)下面程序运行结果是(? ).?? # includestdio.h?? main(){ int a=1,b=10;?do?? {b-=a ; a++ ; } while ( b–0) ;?printf ( “ a=%d , b=%d ”,a,b);}
A.a=3 , b=11
B.a=2,b=8
C.a=1,b=-1
D.a=4,b=9
答案问询微信:424329

(87奥鹏期末考核)下面判断正确的是( )。
A.char * a=”china”;等价于 char *a;*a=”china”;
B.char str[10]={“china”};等价于char str[10];str[]={“china”};
C.char *s=”china”; 等价于 char *s; s=”china”;
D.char c[4]=”abc”,d[4]=”abc”; 等价于 char c[4]=d[4]=”abc”;
答案问询微信:424329

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

(89)以下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

(90)设有以下语句:?????????? struct st???????????? {int n;?????????????????? struct st? *next;?????????????? };???????????? static struct st a[3 ] ={5,????????????? p=????????????? 则以下表达式的值为6的是( )。
A.p++-n
B.p-n++
C.(*P).n++
D.++p-n
答案问询微信:424329

(91)在宏定义#define PI? 3.14159中,用宏名PI代替一个( )。
A.常量
B.单精度数
C.双精度数
D.字符串
答案问询微信:424329

(92)以下程序有错,错误的原因是( )。???????? 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

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

(94)以下程序的运行结果是(? )。#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

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

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

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

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

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

(100)设char ch;以下正确的赋值语句是( )。
A.ch=''123'';
B.ch=\xff'';
C.ch=''\08’;
D.ch="\”;
答案问询微信:424329

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

(102)以下scanf函数调用语句中对结构体 变量成员的不正确引用是( )。Stuct pupil{char name[20 ];int age ;int sex;}pup[5,]*p;p=pup;
A.scanf(“%s”,pup[0].name);
B.scanf(“”%d),
C.scanf(“%d”, ?(p
D.scanf(“%d”,P-age);
答案问询微信:424329

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

(104)选择出合法的if语句(设int x,a,b,c;)(? )。
A.if(a=b)x十十;
B.if(a=<b)x十+;
C.if(a<>b)x十十;
D.if(a=>b)x十十;
答案问询微信:424329

(105)以下程序的运行结果是( )。#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

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

(107)以下对C语言中共用体类型数据的叙述正确的是(??? )。
A.可以对共用体变量名直接赋值
B.一个共用体变量中可以同时存放其所有成员
C.一个共用体变量中不可能同时存放其所有成员
D.共用体类型定义中不能出现结构体类型的成员
答案问询微信:424329

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

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

(110)若哟于以下说明和语句:????????? struct student ????????? {int age;??????????? int num;?????????? }std,*p;?????????? p=?????????? 则以下对结构体变量std中成员age的引用方式不正确的是( )。
A.std.age
B.p-age
C.(*p).age
D.*p.age
答案问询微信:424329

(111)请读程序#includestdio.h#defineMUL(x,y)(x)*ymain(){int a=3,b=4,c;c=MUL(a++,b++);printf("%d ",c);?????? }上面程序的输出结果是( )。
A.12
B.15
C.20
D.16 C
答案问询微信:424329

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

(113)以下不正确的语句(设有int p,q)是(?? ?)。
A.P*=3;
B.p/=q;
C.p十=3;
D.p&&=q;
答案问询微信:424329

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

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

(116)阅读以下程序,当输入数据的形式为:25,13,10CR,正确的输出结果为()。main(){ int x,y,z;scanf(“%d%d%d”,printf(“x+y+z=%d ”,x+y+z);}
A.x+y+z=48
B.x+y+z=35
C.x+z=35
D.不确定值
答案问询微信:424329

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

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

(119)以下程序的输出结果为( )。#includestdio.h#define(y)??? 3.84+y#definePR(a)??? printf("%d",(int)(a))#definePRINT(a)?? PR(a);putchar( )main(){int x=2;PRINTF(F(3)*x));}
A.8
B.9
C.10
D.11
答案问询微信:424329

(120)以下程序的正确运行结果是(? )。#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

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

(122)下列运算符中优先级最高的是( )。
A.<
B.十
C.%
D.!=
答案问询微信:424329

(123)判断char型变量ch是否为大写字母的正确表达式是( )。
A.’A’<=ch<=’Z’
B.(cb>=’A’)&(ch<=’Z’)
C.(ch>=’A’)&&(ch<=’Z’)
D.(‘A’<=ch)AND(‘Z’>=ch)
答案问询微信:424329

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

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

(126)以下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

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

(128)以下程序的输出结果是( )。??????????? Struct stu ???????????? {int x;???????????????? int*y;?????????????? } *p;???????????? int dt[4] ={10,20,30,40};???????????? struct stu a[4]={50,????????????? 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

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

(130)在C语言中,引用数组元素时,其数组下标的数据类型允许是( )。
A.整型常量
B.整型表达式
C.整型常量或整型表达式
D.任何类型的表达式
答案问询微信:424329

(131)下面程序的运行结果是(  )。#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

(132)定义如下变量和数组:?int k;int a[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( )。for (k=0;k3;k++)printf(“%d”,a[k][2-k]);
A.3 5 7
B.3 6 9
C.1 5 9
D.1 4 7
答案问询微信:424329

(133)以下叙述中正确的是( )。
A.在程序的一行上可以出项多个有效的预处理命令行
B.使用带参的宏时,参数的类型应与宏定义时的一致
C.宏替换不占用运行时间,只占编译时间
D.在以下定义中C? R是称为”宏名”的标识符#define?? C? R?????? 045
答案问询微信:424329

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

(135)表示图中坐标轴上阴影部分的正确表达式是( ).??????????? //// |????????????? | ////|??????????? //// |????????????? | ////|?????? ##########################_X??????????????? A?????????????? b???? c
A.(x<=a)&& (x>=b)&&(x<=c)
B.(x<=a) ||? (b<=x<=c)
C.(x<=a) ||(x>=b)&&(x<=c)
D.(x<=a)&&(b<=x<=c)
答案问询微信:424329

(136)以下不正确的说法为( )。
A.在不同的函数中可以使用相同名字的变量
B.形式参数是局部变量
C.在函数内定义的变量只在本函数范围内有效
答案问询微信:424329

(137)阅读以下程序及对程序功能的描述,其中正确的描述是( )。???????? #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

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

(139)设有说明: char w; int x; float y; double z; 则表达式w*x+z-y值的数据类型为( )。
A.float
B.char
C.itn
D.double.
答案问询微信:424329

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

(141)以下程序段( ).x=-??1; do{x=x*x;} while(! x);
A.是死循环
B.循环执行二次
C.有语法错误
答案问询微信:424329

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

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

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

(145)以下有关宏替换的叙述不正确的是( )。
A.宏替换不占用运行时间
B.宏名无类型
C.宏替换知识字符替换
D.宏名必须用大写字母表示
答案问询微信:424329

(146)若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是( ).
A.A%2==1
B.!(入%2==0)
C.!(A%2)
D.A%2
答案问询微信:424329

(147)以下程序的正确运行结果是().#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

(148)C语言用(?? ? )表示逻辑“真”值。
A.true
B.t或y
C.非零整数值
D.整数0
答案问询微信:424329

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

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

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

(152)请读程序:#define ADD(x)? x+xmain(){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
答案问询微信:424329

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

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

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

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

(157)若有以下定义和说明:???????? #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(
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

(158)设有以下说明,则下面不正确的叙述是(??? )。Union data{? int? i;char c;float f;}un;
A.un所占的内存长度等于成员f的长度
B.un的地址和它的各成员地址都是同一地址
C.un可以作为函数参数
D.不能对un赋值,但可以在定义un时对它初始化
答案问询微信:424329

(159)设有以下结构体类型: 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

(160)以下对一维整形数组a进行正确初始化的语句是( )。
A.int a[10]=(0,0,0,0,0);
B.int a[10]={};
C.int a[]={0};
D.int a[10]={10*1};
答案问询微信:424329

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

(162)对以下说明语句的正确理解是( )。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

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

(164)以下正确的定义语句是( )。
A.int a[1][4]={1,2,3,4,5};
B.float x[3][]={{1},{2},{3}};
C.long b[2][3]={{1},{1,2},{1,2,3}};
D.double y[][3]={0};
答案问询微信: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”,
B.scanf(“%f%f”,
C.scanf(“%3.2f%2.1f”,
D.scanf(“%3.2f,%2.1f”,
答案问询微信:424329

(167)fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是( )。
A.只写
B.追加
C.读或读写
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

提供优质的教育资源

公众号: 超前自学网