兰州大学-C语言程序设
若有定义typedef char STRING[255]; STRING s; 则s是 A. 字符指针数组变量 B. 字符指针变量 C. 字符变量 D. 字符数组变量
答案是:答案D
以下程序的运行结果是( )main(){int m=5;if(m++>5) printf(.%d.,--m);else printf(.%d.,m++);} A. 4 B. 5 C. 6 D. 7
答案是:答案C
写出下面程序的输出结果( )main(){int x;x=-3+4*5-6;printf(.%d.,x);x=3+4%5-6;printf(.%d.,x);x=-3*4%6/5;printf(.%d.,x);x=(7+6)%5/2;prin
答案是:答案A
若有定义:int (*p)[4];则标识符p( ) A. 是一个指向整型变量的指针 B. 是一个指针数组名 C. 是一个指针,它指向一个含有四个整型元素的一维数组 D. 定义不合法
答案是:答案C
下面程序的输出是( )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
答案是:答案D
用typedef可以创建新的基本类型
答案是:答案错误
若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是( ) A. A%2= =1 B. !(A%2= =0) C. !(A%2) D. A%2
答案是:答案C
下面程序的运行结果是( )#include main(){int a[6],i;for(i=1;i<6;i++){a[i]=9*(i-2+4*(i>3))%5;printf(.%2d.,a[i]);}} A. 4 0 4 0 4 B
答案是:答案C
sizeof(float)是( ) A. 一个双精度型表达式 B. 一个整型表达式 C. 一种函数调用 D. 一个不合法的表达式
答案是:答案B
以下对C语言中联合体类型数据的叙述正确的是( ) A. 可以对联合体变量直接赋值 B. 一个联合体变量中可以同时存放其所有成员 C. 一个联合体变量中不能同时存放其所有成员 D. 联合体类型定义中不能同时出现结构体类型的成员
答案是:答案C
在C语言中,每个语句和数据定义是用( )结束 A. 句号 B. 逗号 C. 分号 D. 括号
答案是:答案C
设整型变量a值为9,则下列表达式中使b的值不为4的表达式( ) A. b=a/2 B. b=a%2 C. b=8-(3,a-5) D. b=a>5?4:2
答案是:答案B
以下程序#include main(){printf(.%d .,NULL);}的输出结果是( ) A. 不确定的值(因变量无定义) B. 0 C. -1 D. 1
答案是:答案B
C语言中,逻辑真表示为( ) A. TRUE B. .y.或.Y. C. 1 D. 非零值
答案是:答案C
下面程序段的运行结果是( )a=1;b=2;c=2;while(a A. 1,2,0 B. 2,1,0 C. 1,2,1 D. 2,1,1
答案是:答案A
表达式-l?(10?10:1):(0?0:-1)的值为( ) A. 10 B. 1 C. 0 D. -1
答案是:答案A
C语言中,共用体类型的变量在程序运行期间,所有成员都在内存中.
答案是:答案错误
在C 语言中,共用体类型属于构造类型
答案是:答案正确
有int x=3,y=4,z=5;则下面表达式中值为0的是( ) A. x.&&.y. B. x<=y C. x||y+z&&y-z D. !((x
答案是:答案D
要打开一个已存在的非空文件"file"用于修改,选择正确的语句 A. fp=fopen(.file.,.r.) B. fp=fopen(.file.,.w.) C. fp=fopen(.file.,.r+.) D. fp=f
答案是:答案C
在以下的运算符中,优先级最高的运算符是 A. > B. = C. % D. &&
答案是:答案C
设有以下的程序片段, int i;float f=10.5;i=((int)f)/2;请问执行后变量i的值是( ) A. 5.0 B. 5.5 C. 6 D. 5
答案是:答案D
以下read函数的调用形式中,参数类型正确的是( ) A. read(int fd,char *buf,int count) B. read(int *buf,int fd,int count) C. read(int fd,i
答案是:答案A
以下选项中可作为C语言合法整数的是 A. 10110B B. 0386 C. 0Xffa D. x2a2
答案是:答案C
定义如下变量和数组:int k,a[3][3]={1,2,3,4,5,6,7,8,9}
答案是:A. 3 5 7
定义如下变量和数组:int k,a[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( )。for(k=0;k<3;k++) printf(.%d .,a[k][2-k]);
答案是:答案A
若有以下定义:char s[10]=.include.,*p=s;则不能代表字符u的表达式是( )
答案是:答案B
若有以下定义int a[5]={1,2,3,4,5},*p,i;i
答案是:答案D
int k=0;do{++k;}while(k>=0);是无限循环的语句
答案是:答案错误
C语言中形参到实参传递是双向的
答案是:答案错误
定义如下变量和数组:int k,a[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( )。for(k=0;k<3;k++) printf(.%d .,a[k][2-k]); A. 3 5 7 B. 3 6
答案是:答案A
C语言规定,函数返回值的类型是由( )所决定。 A. return语句中的表达式类型 B. 调用该函数时的主调函数类型 C. 调用该函数是系统临时指定 D. 在定义该函数时所指定的函数类型
答案是:答案D
下列字符串是标识符的是( ) A. _HJ B. 9_student C. long D. LINE 1
答案是:答案A
若fp是指向某文件的指针,且feof(fp)的返回值是非零值,则表示 A. 已读到此文件末尾 B. 未读到此文件的末尾 C. 此文件已关闭 D. 此文件尚未被打开
答案是:答案A
在C语言中,全局变量的隐含存储类别是 A. static B. extern C. void D. register
答案是:答案B
struct st {int age;int num;}stul, *p; p=&stul;以下对结构体变量stul中成员age的非法引用是( ) A. stul.age B. age C. p-->age D. (*p).
答案是:答案B
若fp已正确定义并指向某个文件,当未遇到该文件结束标志时,函数feof(fp)值 A. 0 B. 1 C. -1 D. 一个非0值的
答案是:答案D
若数组a有m列,则ali][j]之前的数组元素个数为( ) A. (i-1)*(i-1) B. i*m+j+1 C. i*m+j-1 D. i*m+j
答案是:答案D
设有以下程序片段:char s[ ]=.Program!.;char *p;p=s;则执行完上面的程序段后,*(p+8)的值为( ) A. !. B. .\0. C. .m. D. 不定值
答案是:答案B
在ASCII码表中可以看到每个小写字母的ASCII码比它相应的大写字母的ASCII码( ) A. 大32 B. 大64 C. 小32 D. 小64
答案是:答案A
C语言中的main函数必须位于程序的最前面
答案是:答案错误
C语言是解释性语言
答案是:答案错误
在位运算中,操作数每左移2位,相当于( ) A. 操作数*2 B. 操作数/2 C. 操作数*4 D. 操作数/4
答案是:答案C
执行以下程序后的输出结果是( )int w=3,z=7,x=10;printf(.%d.,x>10?x+100:x-10);printf(.%d.,w++||z++);printf(.%d.,!w>z);printf(.%d.,w&&z);
答案是:答案C
以下程序的输出结果是? #include main() { int x=020,y=0x20,z=20; printf(.%d,%d,%d .,x,y,z); } A. 20,20,20 B. 32,16,20 C. 16,32
答案是:答案C
设有以下程序片段:char a[ ]=.hello.,*p;p=a;printf(.%d.,*(p+5));执行上面的程序片段后的结果为( ) A. 111 B. 0 C. 104 D. 不确定的值
答案是:答案B
以下程序的运行结果是( )#include main(){int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(.%d,%d.,a,b);} A. 6,1 B. 2,1 C. 6,0 D.
答案是:答案B
设有以下结构体定义:struct emproyer{char name[8];int age;char sex;}staff;则下面的叙述不正确的是( ) A. struct是结构体类型的关键字 B. struct emproyer
答案是:答案C
程序段的基本结构中,不包含( ) A. 函数结构 B. 循环结构 C. 顺序结构 D. 分支结构
答案是:答案A
设有以下定义int k=7, x=12;,则能使值为3的表达式是( ) A. x%=(k%=5) B. x%=(k-k%5) C. x%=k D. (x%=k)-(k%=5)
答案是:答案D
若有以下定义,int a,b;float x; 则正确的赋值语句是( ) A. a=1,b=2 B. b++ C. a=b=5 D. b=int(x)
答案是:答案B
设有以下程序:#inlude main(){int * *k,*j,i=100;j=&i;k=&j;printf(“%d”, * *k);}上述程序的输出结果是( ) A. 运行错误 B. 100 C. i的地址 D. j的
答案是:答案B
设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为( ) A. 1 B. 2 C. 3 D. 4
答案是:答案B
有一个函数原型如下所示: abc(float x,double y); 则该函数的返回类型为 A. void B. double C. int D. float
答案是:答案C
C语言中没有真正的多维数组
答案是:答案正确
写出下面程序的输出结果( )main(){int i,j;i=20;j=(++i)+i;printf(.%d.,j);i=13;printf(.%d %d),i++,i);} A. 42 14,13 B. 41 14,14 C.
答案是:答案C
判断char型变量ch是否为大写字母的正确表达式为( ) A. A.<=ch<=.Z. B. (ch>=.A.)&(ch<=.Z.) C. (ch>=.A.)&&(ch<=.Z.) D. (.A.<=ch)AND(.Z.>=
答案是:答案C
以下不正确的说法为( ) A. 在不同函数中可以使用相同名字的变量 B. 形式参数是局部变量 C. 在函数内定义的变量只在本函数范围内有效 D. 在函数内的复合语句中定义的变量在本函数范围内有效
答案是:答案D
根据题目中已给出的数据输入和输出形式,main(){int x;float y;printf(.enter x,y:.);输入语句;输出语句}输入形式:enter x,y:2 3.4输出形式:x+y=5.40, 程序中输入输出语句的正确内容
答案是:答案B
若要求表示a不等于0的关系,错误的表达式是( ) A. a<>0 B. a!=0 C. a D. a<0| |a>0
答案是:答案A
若i是int型变量,且有下面的程序片段i=0;if(i<=0) printf(.####.) else printf(.****.);上面程序片段的输出结果是( ) A. #### B. **** C. ####**** D
答案是:答案D
若以.a+.方式打开一个已存在的文件,则以下叙述正确的是( ) A. 文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和修改操作 B. 文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读写操作
答案是:答案A
以下程序的运行结果为( )#include main(){struct date{int year,month,day;}today; printf(.%d .,sizeof(struct date));} A. 6 B. 8
答案是:答案A
设有说明:char *str[10];则标识符str的意义是( ) A. str是一个指向有10个元素的数组的指针 B. str是一个有10个元素的数组,数组元素的数据类型是指向char型的指针型 C. str是一个指向char
答案是:答案B
语句while(!E);中的!E等价于( ) A. E= =0 B. E!=1 C. E!=0 D. E= =1
答案是:答案A
设以下变量均为int类型,则值不等于7的表达式是( ) A. x=y=6,x+y,x+1 B. x=y=6,x+y,y+1 C. x=6,x+1,y=6,x+y D. y=6,y+1,x=y,x+1
答案是:答案C
设整型变量a和b的值分别为8和9。printf(.%d,%d.,(a++,++b),b--);的输出是( ) A. 8,8 B. 8,7 C. 9,9 D. 10,9
答案是:答案C
已有定义int i,j;float x;为将-10赋给i,12赋给j,410.34赋给x;则对应以下scanf函数scanf(.%o%x%e.,&i,&j,&x);调用语句的数据输入形式是-12ucu4.1034e2(u代表空格)
答案是:答案正确
C语言程序中,一个文件中的函数可以引用另一个文件中的函数和变量
答案是:答案正确
在C 语言中,指针类型属于构造类型
答案是:答案错误
main(){int x,y,z;x=1;y=1;z=0;x=x||y&&z;printf(.%d,%d.,x,x&&!y||z);}程序的运行结果是1,1
答案是:答案错误
以下不正确的定义语句是( ) 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.}
答案是:答案B
C语言中while和do while循环的主要区别是( ) A. do-while的循环至少无条件执行一次 B. while循环控制条件比do-while的循环控制条件严格 C. do-while允许从外部转入到循环体内 D
答案是:答案A
若有以下定义:char s[10]=.include.,*p=s;则不能代表字符u的表达式是( ) A. s[4] B. s+4 C. *(p+4) D. p+=4,*p
答案是:答案B
下面对typedef不正确的叙述是 A. 用typedef可以定义各种类型名,但不能用来定义变量 B. 用typedef可以增加新的基本数据类型 C. 用typedef只是将已存在的类型用一个新的标识符表示 D. 使用typ
答案是:答案B
若有以下定义int a[5]={1,2,3,4,5},*p,i;i=3;p=a;,则对数组元素地址的正确引用是( ) A. &p B. a++ C. &(p+1) D. &p[i]
答案是:答案D
不属于面向机器语言的是( ) A. 符号语言 B. 二进制语言 C. 汇编语言 D. C语言
答案是:答案D
若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为(假设a[0][0]位于数组的第一个位置上)( ) A. i*m+j B. j*m+I C. i*m+j-1 D. i*m+j+1
答案是:答案D
C语言提供的合法关键字是( ) A. break B. print C. funtion D. end
答案是:答案A
假设所有变量均为整型, 则表达式( a=5, b=2, a++, a+b ) 的值是( ) A. 8 B. 7 C. 6 D. 5
答案是:答案A
若有以下定义: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
下面程序#include main(){int y=10;do {y--;}while(--y);printf(.%d .,y--);}的运行结果是( ) A. 1 B. -1 C. 8 D. 0
答案是:答案D
关于fseek函数,以下有关操作的叙述不正确的是( ) A. 可以改变文件的位置指针 B. 可以实现文件的顺序读写 C. 可以实现文件的随机读写 D. 只可以顺序定位文件的位置指针
答案是:答案D
对for(表达式1; ;表达式3)可理解为for (表达式1;1;表达式3)
答案是:答案正确
下列语句new→next=head;head=new;可以完成建立2结点的单向链表的功能
答案是:答案正确
strcmp3(char *s,char *t){for (;*t= =*s;){if (!*t) return 0; t++;s++;}return (*s-*t);}库函数strcmp(char*s,char*t)是功能相等的程序段
答案是:答案正确
表达式a A. &,<,|| B. &,||,< C. <,||,& D. <,&,||
答案是:答案D
下面程序的输出是( )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
已知a,b,c的值分别是1,2,3,则执行下列语句if (a++ A. 0,0,0 B. 1,2,3 C. 1,2,1 D. 2,2,2
答案是:答案D
设有说明: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
一个C程序的执行是从( ) A. 本程序的main函数开始,到main函数结束 B. 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C. 本程序的main函数开始,到本程序文件的最后一个函数结束 D. 本程序文
答案是:答案A
以下对二维数组a的正确说明是( ) A. int a[3][] B. float a(3,4) C. double a[1][4] D. float a(3)(4)
答案是:答案C
下面程序段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
答案是:答案D
阅读以下程序,int w=1,x=2,y=3,z=4,m;m=w A. 1 B. 2 C. 3 D. 4
答案是:答案A
已有程序段和输入数据的形式,main(){ int a;float f;printf(.Input number:.);(输入语句)printf(. f=%f,a=%d .,f,a);}Input number:4.5uu2(u代表空格)
答案是:答案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
答案是:答案D
以下运算符优先级最高的是( ) A. && B. & C. || D. |
答案是:答案B
若有以下定义, 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)
答案是:答案D
关于联合体,下面叙述不正确的是( ) A. 联合体变量中成员项共用同一存储空间,因此,联合体变量的地址和每一个成员项的地址是同一地址 B. 联合体变量中成员项所占存储空间量不同,因此,联合体中每一个成员项的地址不是同一地址 C.
答案是:答案B
在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是( ) A. extern B. register C. auto D. static
答案是:答案D
设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
根据下面程序及数据的输入和输出形式,main(){char ch1,ch2,ch3;输入语句printf(.%c%c%c.,ch1,ch2,ch3);}, 输入形式:AuBuC输出形式:AuB, 程序中输入语句的正确形式应该为( )(u代表
答案是:答案A
下面程序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
答案是:答案B
有以下程序#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
C语言源程序的最小单位是( ) A. 程序行 B. 语句 C. 函数 D. 字符
答案是:答案D
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,
答案是:答案正确
C语言中,函数可以嵌套定义
答案是:答案错误
使用continue和break语句,都可以使得C程序中断执行
答案是:答案错误
main(){int x,y,z;x=1;y=2;z=3;x=y--<=x||x+y!=z;printf(.%d,%d.,x,y);} 程序的运行结果是1,1
答案是:答案正确
printf函数中用到格式符.%4s.,其中数字4表示输出的字符串站用4列。如果字符串长度大于4,则按原字符长从左向右全部输出;如果字符串长度小于4,则输出方式为( ) A. 从左起输出该字符串,右补空格 B. 按原字符长从左向右全
答案是:答案C
下面四个选项中,均是不合法的用户标识符的选项是( ) A. A,P_0,do B. float,la0,_A C. b-a,goto,int D. _123,temp,INT
答案是:答案C
以下程序段x=-1;do x=x*x;while(!x);( ) A. 是死循环 B. 循环执行两次 C. 循环执行一次 D. 有语法错误
答案是:答案C
设有程序段t=0;while(printf(.*.)){t++;if(t<3) break;}下面描述正确的是( ) A. 其中循环控制表达式与0等价 B. 其中循环控制表达式与.0.等价 C. 其中循环控制表达式是不合法的
答案是:答案B
10+’a’+1.5-567.345/’b’的结果是( )型数据 A. long B. double C. int D. unsigned float
答案是:答案B
设有以下程序片段, 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,1
答案是:答案A
根据下面的定义,能打印出字母“M”的语句是( )struct person{char name[9];int age;};struct person class[10]={.John.,17,.Paul.,19,.Mary.,18,.ada
答案是:答案D
已知函数的调用形式:fread(buffer, size, count, fp); 其中buffer代表 A. 一个整型变量,代表要读入的数据项总数 B. 一个文件指针变量,指向要读的文件 C. 一个储存区,存放要读的数据项
答案是:答案D
函数ftell的作用是( ) A. 取得当前文件指针的位置,该位置为相对于文件开头的位移量表示 B. 取得当前文件指针的位置,该位置为相对于文件末尾的位移量表示 C. 出错时返回值为0 D. 以上叙述都不正确
答案是:答案A
有枚举类型的定义: enum color1 { yellow,green,blue=5,red,brown}; 则枚举常量yellow 和 red的值分别是 A. 3,6 B. 1,6 C. 0,6 D. 0,3
答案是:答案C
定义一个联合体变量时,系统分配给它的内存是( ) A. 联合体中第一个成员所需内存量 B. 联合体中最后一个成员所需内存量 C. 成员中占内存量最大者所需的容量 D. 各成员所需内存量的总和
答案是:答案C
目前为: 1/2 页  首页   上页  下页 尾页