出自:兰州大学-C语言程序设计

若有定义:int *p[4];则标识符p( ) A. 是一个指向整型变量的指针 B. 是一个指针数组名 C. 是一个指针,它指向一个含有四个整型元素的一维数组 D. 定义不合法
一下关于宏替换的叙述不正确的是 A. 宏替换只是字符替换 B. 宏名无类型 C. 宏替换不占用运行时间 D. 宏替换不占用编译时间
有程序:main(){int a=5,b=1,c=0;if (a=b+c) printf(.*** .);else printf(.$$$ .);}该程序( ) A. 有语法错误不能通过编译 B. 可以通过编译,但不能通过连接 C. 输出:*** D. 输出:$$$
定义一个结构体变量时,系统分配给它的内存是( ) A. 结构体中第一个成员所需内存量 B. 结构体中最后一个成员所需内存量 C. 成员中占内存量最大者所需内存量 D. 各成员所需内存量的总和
下列数组的定义中,会产生错误的是( ) A. int a[10]={.0.,.1.,.2.,.3.,.4.,.5.,.6.,.7.,.8.,.9.} B. int a[10]={0,1,2,3,4,5,6,7,8,9} C. char a[5]=.Hello. D. char a[5]={.H.,.e.,.l.,.l.,.o.}
以下程序main(){int x=10,y=10;printf(.%d %d .,x--,--y);}的输出结果是( ) A. 10 10 B. 9 9 C. 9 10 D. 10 9
a为0111,b为0123,a、b、c均为无符号短整型变量,则语句printf(.%o,%o,%o,%o.,c=~a,c=a&b,c=a|b,c=a∧b)的输出结果为( ) A. 177666,101,133,32 B. 0177666,0123,0333,032 C. 0177666,0101,0133,032 D. 177666,0123,0133,034
对说明语句int a[10]={6,7,8,9,10};的正确理解是( ) A. 将5个初值依次a[1]至a[5] B. 将5个初值依次a[0]至a[4] C. 将5个初值依次a[5]至a[9] D. 将5个初值依次a[6]至a[10]
定义一个联合体变量时,系统分配给它的内存是( ) A. 联合体中第一个成员所需内存量 B. 联合体中最后一个成员所需内存量 C. 成员中占内存量最大者所需的容量 D. 各成员所需内存量的总和
有枚举类型的定义: enum color1 { yellow,green,blue=5,red,brown}; 则枚举常量yellow 和 red的值分别是 A. 3,6 B. 1,6 C. 0,6 D. 0,3
函数ftell的作用是( ) A. 取得当前文件指针的位置,该位置为相对于文件开头的位移量表示 B. 取得当前文件指针的位置,该位置为相对于文件末尾的位移量表示 C. 出错时返回值为0 D. 以上叙述都不正确
已知函数的调用形式:fread(buffer, size, count, fp); 其中buffer代表 A. 一个整型变量,代表要读入的数据项总数 B. 一个文件指针变量,指向要读的文件 C. 一个储存区,存放要读的数据项 D. 一个指针变量,它存放数据缓冲区的地址
根据下面的定义,能打印出字母“M”的语句是( )struct person{char name[9];int age;};struct person class[10]={.John.,17,.Paul.,19,.Mary.,18,.adam.,16 }; A. printf(.%c\n.,class[3].name) B. printf(.%c\n.,class[3].name[l]) C. printf(.%c\n.,class[2].name[l]) D. printf(.%c\n.,class[2].name[0])
设有以下程序片段, int i=010,j=10,k=0xl0;printf(.%d,%d,%d.,k,j,i);请问执行后的输出结果是( ) A. 16,10,8 B. 8 10 16 C. 10,10,10 D. 8,10,16
10+’a’+1.5-567.345/’b’的结果是( )型数据 A. long B. double C. int D. unsigned float
设有程序段t=0;while(printf(.*.)){t++;if(t<3) break;}下面描述正确的是( ) A. 其中循环控制表达式与0等价 B. 其中循环控制表达式与.0.等价 C. 其中循环控制表达式是不合法的 D. 以上说法都不对
以下程序段x=-1;do x=x*x;while(!x);( ) A. 是死循环 B. 循环执行两次 C. 循环执行一次 D. 有语法错误
下面四个选项中,均是不合法的用户标识符的选项是( ) A. A,P_0,do B. float,la0,_A C. b-a,goto,int D. _123,temp,INT
printf函数中用到格式符.%4s.,其中数字4表示输出的字符串站用4列。如果字符串长度大于4,则按原字符长从左向右全部输出;如果字符串长度小于4,则输出方式为( ) A. 从左起输出该字符串,右补空格 B. 按原字符长从左向右全部输出 C. 右对齐输出该字符,左补空格 D. 输出错误信息
main(){int x,y,z;x=1;y=2;z=3;x=y--<=x||x+y!=z;printf(.%d,%d.,x,y);} 程序的运行结果是1,1
使用continue和break语句,都可以使得C程序中断执行
C语言中,函数可以嵌套定义
main(){short i;i=-4;printf(. i:dec=%d, oct=%o, hex=%x, unsigned=%u .,i,i,i,i);}以上程序的输出结果为i:dec=-4, oct=177774, hex=fffc, unsigned=65532
C语言源程序的最小单位是( ) A. 程序行 B. 语句 C. 函数 D. 字符
有以下程序#include main(){ int a[]={1,2,3,4,5,6},*p;p=a;*(p+3)+=2;printf(.%d,%d.,*p,a[3]);},请问执行后的输出结果是( ) A. 1,4 B. 0,4 C. 1,6 D. 0,6
下面程序main(){int x=4,y=0,z;x*=3+2; printf(“%d”,x);x*=y= =(z=4); printf(“%d”,x);}的输出结果是( ) A. 14 40 B. 20 0 C. 20 4 D. 14 4
根据下面程序及数据的输入和输出形式,main(){char ch1,ch2,ch3;输入语句printf(.%c%c%c.,ch1,ch2,ch3);}, 输入形式:AuBuC输出形式:AuB, 程序中输入语句的正确形式应该为( )(u代表空格) A. scanf(.%c%c%c.,&ch1,&ch2,&ch3) B. scanf(.%c,%c,%c.,&ch1,&ch2,&ch3) C. scanf(.%c %c %c.,&ch1,&ch2,&ch3) D. scanf(.%c%c.,&ch1,&ch2,&ch3)
设E为表达式,以下与do…while(E);不等价的语句是 A. do…while(!E==0) B. do…while(E>0||E<0) C. do…while(E==0) D. do…while(E!=0)
在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是( ) A. extern B. register C. auto D. static
关于联合体,下面叙述不正确的是( ) A. 联合体变量中成员项共用同一存储空间,因此,联合体变量的地址和每一个成员项的地址是同一地址 B. 联合体变量中成员项所占存储空间量不同,因此,联合体中每一个成员项的地址不是同一地址 C. C语言规定不能对联合体变量赋值 D. 也不能通过直接引用变量名来得到成员项,这与结构体是相同的 E. 不允许将联合体变量作为函数参数,也不允许用联合体变量作为函数的返回值
若有以下定义, int k=7,x=12, 则能使值为3的表达式是( ) A. x%=k%=5 B. x%=k-k%5 C. x%=(k-k%5) D. (x%=k)-(k%=5)
以下运算符优先级最高的是( ) A. && B. & C. || D. |
设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,值为0的表达式是( ) A. a.&&.b. B. a<=b C. a||b+c&&b-c D. !((a
已有程序段和输入数据的形式,main(){ int a;float f;printf(.Input number:.);(输入语句)printf(. f=%f,a=%d .,f,a);}Input number:4.5uu2(u代表空格) A. scanf(.%d,%f.,&a,&f) B. scanf(.%f,%d.,&f,&a) C. scnaf(.%d%f.,&a,&f) D. scanf(.%f%d.,&f,&a)
阅读以下程序,int w=1,x=2,y=3,z=4,m;m=w A. 1 B. 2 C. 3 D. 4
下面程序段x=y=0;while(x<15) y++,x+=++y;printf(.%d,%d.,y,x);的运行结果是( ) A. 20,7 B. 6,12 C. 20,8 D. 8,20
以下对二维数组a的正确说明是( ) A. int a[3][] B. float a(3,4) C. double a[1][4] D. float a(3)(4)
一个C程序的执行是从( ) A. 本程序的main函数开始,到main函数结束 B. 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C. 本程序的main函数开始,到本程序文件的最后一个函数结束 D. 本程序文件的第一个函数开始,到本程序main函数结束
设有说明:double y=0.5,z=1.5;int x=10;则能够正确使用C语言库函数的赋值语句是( ) A. z=exp(y)+fabs(x) B. y=log10(y)+pow(y) C. z=sqrt(y-z) D. x=(int)(atan2((double)x,y)+exp(y-0.2))
已知a,b,c的值分别是1,2,3,则执行下列语句if (a++ A. 0,0,0 B. 1,2,3 C. 1,2,1 D. 2,2,2
下面程序的输出是( )main(){enum team {my, your=4,his,her=his+10};printf(.%d%d%d%d .,my,your,his,her);} A. 0 1 2 3 B. 0 4 0 10 C. 0 4 5 15 D. l 4 5 15
表达式a A. &,<,|| B. &,||,< C. <,||,& D. <,&,||
strcmp3(char *s,char *t){for (;*t= =*s;){if (!*t) return 0; t++;s++;}return (*s-*t);}库函数strcmp(char*s,char*t)是功能相等的程序段
下列语句new→next=head;head=new;可以完成建立2结点的单向链表的功能
对for(表达式1; ;表达式3)可理解为for (表达式1;1;表达式3)
关于fseek函数,以下有关操作的叙述不正确的是( ) A. 可以改变文件的位置指针 B. 可以实现文件的顺序读写 C. 可以实现文件的随机读写 D. 只可以顺序定位文件的位置指针
下面程序#include main(){int y=10;do {y--;}while(--y);printf(.%d .,y--);}的运行结果是( ) A. 1 B. -1 C. 8 D. 0
若有以下定义:int a[ ]={1,2,3,4,5,6,7,8,9},*p=a;则值为5的表达式是( ) A. p+=4,*(p++) B. p+=4,*++p C. p+=5,*p++ D. p+=4,++*p
假设所有变量均为整型, 则表达式( a=5, b=2, a++, a+b ) 的值是( ) A. 8 B. 7 C. 6 D. 5
C语言提供的合法关键字是( ) A. break B. print C. funtion D. end