txt",”r”);”能正常执行,在该语句之前必须有定义FILE;。
执行“printf(”%d,%d",a,b,c,d);”后在屏幕上将输出个整数。
以下叙述中正确的是
A)程序设计的任务就是编写程序代码并上机调试
B)程序设计的任务就是确定所用数据结构
C)程序设计的任务就是确定所用算法
D)以上三种说法都不完整
以下选项中,能用作用户标识符的是
A)void
B)8_8
C)_0_
D)unsigned
阅读以下程序
#include
main()
{intcase;floatprintF;
printf(“请输入2个数:
”);
scanf(“%d%f",&case,&pjrintF);
printf(“%d%f\n”,case,printF);
}
该程序编译时产生错误,其出错原因是
A)定义语句出错,case是关键字,不能用作用户自定义标识符
B)定义语句出错,printF不能用作用户自定义标识符
C)定义语句无错,scanf不能作为输入函数使用
D)定义语句无错,printf不能输出case的值
表达式:
(int)((double)9/2)-(9)%2的值是
A)0
B)3
C)4
D)5
若有定义语句:
intx=10;,则表达式x—=x+x的值为
A)-20
B)-10
C)0
D)10
有以下程序
#include
main()
{inta=1,b=0;
printf(“%d,”,b=a+b);
printf(“%d\n”,a=2*b);
}
程序运行后的输出结果是
A)0,0
B)1,0
C)3,2
D)1,2
设有定义:
inta=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是
A)if(a>b)c=a,a=b,b=c;
B)if(a>b){c=a,a=b,b=c;}
C)if(a〉b)c=a;a=b;b=c;
D)if(a>b){c=a;a=b;b=c;}
有以下程序
#include
main()
{intc=0,k;
for(k=1;k〈3;k++)
switch(k)
{default:
c+=k
case2:
c++;break;
case4:
c+=2;break;
}
printf(“%d\n",c);
}
程序运行后的输出结果是
A)3
B)5
C)7
D)9
以下程序段中,与语句:
k=a>b?
(b〉c?
1:
0):
0;功能相同的是
A)if((a>b)&&(b〉c))k=1;
elsek=0;
B)if((a>b)||(b>c)k=1;
elsek=0;
C)if(a〈=b)k=0;
elseif(b<=c)k=1;
D)if(a>b)k=1;
elseif(b〉c)k=1;
elsek=0;
20)有以下程序
#include
main()
{chars[]={“012xy”};inti,n=0;
for(i=0;s[i]!
=0;i++)
if(s[i]>='a’&&s[i]<=’z’)n++;
printf(“%d\n”,n);
}
程序运行后的输出结果是
A)0
B)2
C)3
D)5
有以下程序
#include
main()
{intn=2,k=0;
while(k++&&n++〉2);
printf(“%d%d\n",k,n);
}
程序运行后的输出结果是
A)02
B)13
C)57
D)12
有以下定义语句,编译时会出现编译错误的是
A)chara='a’;
B)chara=’\n’;
C)chara='aa’;
D)chara=’\x2d’;
有以下程序
#include
main()
{charc1,c2;
c1=’A’+’8’-‘4’;
c2='A’+'8’-‘5’;
printf(“%c,%d\n”,c1,c2);
}
已知字母A的ASCII码为65,程序运行后的输出结果是
A)E,68
B)D,69
C)E,D
D)输出无定值
有以下程序
#include
voidfun(intp)
{intd=2;
p=d++;printf(“%d”,p);}
main()
{inta=1;
fun(a);printf(“%d\n”,a);}
程序运行后的输出结果是
A)32
B)12
C)21
D)22
以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能
#defineMIN-2147483647
intfindmax(intx[],intn)
{inti,max;
for(i=0;i
{max=MIN;
if(max
returnmax;
}
造成错误的原因是
A)定义语句inti,max;中max未赋初值
B)赋值语句max=MIN;中,不应给max赋MIN值
C)语句if(max
D)赋值语句max=MIN;放错了位置
有以下程序
#include
main()
{intm=1,n=2,*p=&m,*q=&n,*r;
r=p;p=q;q=r;
printf(“%d,%d,%d,%d\n”,m,n,*p,*q);
}
程序运行后的输出结果是
A)1,2,1,2
B)1,2,2,1
C)2,1,2,1
D)2,1,1,2
若有定义语句:
inta[4][10],*p,*q[4];且0≤i<4,则错误的赋值是
A)p=a
B)q[i]=a[i]
C)p=a[i]
D)p=&a[2][1]
有以下程序
#include
#include
main()
{charstr[][20]={“One*World”,“One*Dream!
”},*p=str[1];
printf(“%d,",strlen(p));printf(“%s\n",p);
}
程序运行后的输出结果是
A)9,One*World
B)9,One*Dream
C)10,One*Dream
D)10,One*World
有以下程序
#include
main()
{inta[]={2,3,5,4},i;
for(i=0;i<4;i++)
switch(i%2)
{case0:
switch(a[i]%2)
{case0:
a[i]++;break;
case1:
a[i]--;
}break;
case1:
a[i[=0;
}
for(i=0;i〈4;i++)printf(“%d",a[i]);printf(“\n”);
}
A)3344
B)2050
C)3040
D)0304
有以下程序
#include
#include
main()
{chara[10]="abcd”;
printf(“%d,%d\n”,strlen(a),sizeof(a));
}
程序运行后的输出结果是
A)7,4
B)4,10
C)8,8
D)10,10
下面是有关C语言字符数组的描述,其中错误的是
A)不可以用赋值语句给字符数组名赋字符串
B)可以用输入语句把字符串整体输入给字符数组
C)字符数组中的内容不一定是字符串
D)字符数组只能存放字符串
下列函数的功能是
fun(char*a,char*b)
{while((*b=*a)!
=’\0’){a++,b++;}}
A)将a所指字符串赋给b所指空间
B)使指针b指向a所指字符串
C)将a所指字符串和b所指字符串进行比较
D)检查a和b所指字符串中是否有'\0’
设有以下函数
voidfun(intn,char*s){……}
则下面对函数指针的定义和赋值均是正确的是
A)void(*pf)();pf=fun;
B)viod*pf();pf=fun;
C)void*pf();*pf=fun;
D)void(*pf)(int,char);pf=&fun;
有以下程序
#include
intf(intn);
main()
{inta=3,s;
s=f(a);s=s+f(a);printf(“%d\n”,s);
}
intf(intn)
{staticinta=1;
n+=a++;
returnn;
}
程序运行以后的输出结果是
A)7
B)8
C)9
D)10
有以下程序
#include
#definef(x)x*x*x
main()
{inta=3,s,t;
s=f(a+1);t=f((a+1));
printf(“%d,%d\n’,s,t);
}
程序运行后的输出结果是
A)10,64
B)10,10
C)64,10
D)64,64
下面结构体的定义语句中,错误的是
A)structord{intx;inty;intz;};structorda;
B)structord{intx;inty;intz;}structorda;
C)structord{intx;inty;intz;}a;
D)struct{intx;inty;intz;}a;
设有定义:
char*c;,以下选项中能够使字符型指针c正确指向一个字符串的是
A)charstr[]="string";c=str;
B)scanf(“%s”,c);
C)c=getchar();
D)*c="string”;
有以下程序
#include
#include
structA
{inta;charb[10];doublec;};
structAf(structAt);
main()
{structAa={1001,”ZhangDa”,1098。
0};
a=f(a);jprintf(“%d,%s,%6。
1f\n",a.a,a。
b,a.c);
}
structAf(structAt)
(t。
a=1002;strcpy(t。
b,”ChangRong”);t.c=1202。
0;returnt;)
程序运行后的输出结果是
A)1001,ZhangDa,1098。
0
B)1001,ZhangDa,1202.0
C)1001,ChangRong,1098。
0
D)1001,ChangRong,1202.0
若有以下程序段
intr=8;
printf(“%d\n”,r>>1);
输出结果是
A)16
B)8
C)4
D)2
下列关于C语言文件的叙述中正确的是
A)文件由一系列数据依次排列组成,只能构成二进制文件
B)文件由结构序列组成,可以构成二进制文件或文本文件
C)文件由数据序列组成,可以构成二进制文件或文本文件
D)文件由字符序列组成,其类型只能是文本文件
下面表示中,不能用作C语言常量的是.
A.0ULB.(long)110
C.1e0D.'\x2c'
设有定义和声明如下:
#defined2
inta=3;floatb=3。
14;charc=’d';
下面表达式中有语法错误的是。
A.a++B.b++
C.c++D.d++
若有枚举类型定义“enumvari{A1,A2,A3,A4=6,A5,A6};”,则枚举常量A2和A6代表的值分别是.
A.1,6B.1,8
C.2,6D.2,8
下面数组声明语句中正确的是。
A.intn,a[n];B.inta[];
C.inta[2][3]={{2},{1},{3}};D.inta[][3]={{2},{1},{3}};
下面函数定义中正确的是。
A.intfun(inta,b){}B.intfun(inta[][]){}
C.intfun(void){}D.intfun(staticinta,intb){}
在C语言中,数字010是一个。
A.十进制数B.八进制数
C.十六进制数D.非法数
若有说明“inta[3][4]={0};”,则下面正确的叙述是。
A.只有元素a[0][0]可得到初值
B.此说明语句不正确
C.数组a中各元素都可得到初值,但其值不一定为0
D.数组a中每个元素均可得到初值0
如果有声明“intm,n=5,*p=&m;”,与m=n等价的语句是。
A.m=*p;B.*p=*&n;
C.m=&n;D.m=**p;
已有定义“charb[6],*p=b;",则正确的赋值表达式语句是。
A.b=”China”;B.*b="China”;
C.p=”China";D.*p=”China”;
已有定义“charch[5]={'a','b',’c’,'d'},*p=ch,i;”,则下面语句中不能正确输出ch数组全部元素值的是。
A.for(i=0;i<4;i++)printf("%c",ch[i]);
B.for(i=0;i<4;i++)printf(”%c",*(ch+i));
C.for(i=0;i<4;i++)printf("%c”,*p++);
D.for(i=0;i〈4;i++)printf("%c”,*ch++);
C语言中可以处理的文件类型有.
A.文本文件和二进制文件B.文本文件和数据文件
C.数据文件和二进制文件D.以上三个都不对
若有定义“inta[5],*b=a,(*c)[3],*d[3];”,则下面表达式中有语法错误的是.
A.a[0]=0B.b[0]=0
C.c[0]=0D.d[0]=0
已知有程序段“charstr[][8]={”first”,”second”},*p=&str[0][0];printf("%s\n",p+8);”,则执行printf语句后输出为.
A.secondB.first
C.ondD.nd
下面叙述错误的是。
A.宏替换不占用程序运行时间B.宏名无类型
C.宏名必须用大写字母表示D.宏替换只是字符替换
设有定义和声明语句:
typedefstructcc
{inta;
structcc*b;
}node;
staticnodeaa[3]={5,&aa[1],7,&aa[2],9,’\0'},*p=&aa[0];
下列选项中,表达式值不为5的是。
A.aa[1].b—>a—2B.p->b—〉a—2
C.(p+1)-〉a-2D.p->a
下面关于共用体类型的叙述正确的是。
A.可以给共用体类型变量直接赋值
B.一个共用体类型变量中可以同时存入其所有成员
C.一个共用体类型变量中不能同时存入其所有成员
D.共用体类型定义中不能同时出现结构体类型的成员
表达式sizeof(”abc")的值是。
A.1B.2C.3D.4
下面选项中,不能用作用户标识符的是。
A.&aB._00C.FORD.print
已知有声明“intx=3,y=4,z;”,则执行语句“z=1/2*(x+y);”后,z的值是。
A.0B.3
C.3.5D.4
下列运算符中,优先级最低的是.
A.*B.!
=
C.+D.=
一元二次方程ax2+bx+c=0有两个相异实根的条件是a≠0且b2—4ac>0,下面选项中正确的表达式是。
A.a!
=0,b*b—4*a*c>0B.a!
=0||b*b—4*a*c>0
C.a&&b*b-4*a*c>0D.!
a&&b*b-4*a*c>0
下面定义符号常量p为3。
14中正确的是.
A.#definep3.14;B.#definep(3.14)
C.#definep=3.14D.#definep3。
14
已有定义“intx=4,y=3,z=5;”,下面4个程序段中有3个程序段的执行效果是相同的,另一个执行效果不同的是。
A.if(x〉y)z=x,x=y,y=z;B.if(x>y){z=x,x=y,y=z;}
C.if(x〉y)z=x;x=y;y=z;D.if(a>y){z=x;x=y;y=z;}
下面关于continue和break语句的叙述中正确的是。
A.continue和break语句都可以出现在switch语句中
B.continue和break语句都可以出现在循环语句的循环体中
C.在循环语句和switch语句之外允许出现continue和break语句
D.执行循环语句中的continue和break语句都将立即终止循环
在while(e)语句中的e与下面条件表达式等价的是。
A.e==0B.e==1
C.e!
=1D.e!
=0
若函数调用时的实参为变量,则下面关于函数形参和实参的叙述中正确的是。
A.实参和其对应的形参占用同一存储单元
B.形参不占用存储单元
C.相同名称的实参和形参占用同一存储单元
D.实参和其对应的形参占用不同的存储单元
在C程序中,若对函数类型未加说明,则函数的隐含类型为.
A.intB.double
C.voidD.char
下面函数中能正确计算n!
(n<13)的是。
A.longf(longn)B.longf(longn)
{{if(n〈=1)return1;
returnn*f(n—1);elsereturnn*f(n);
}}
C.longf(longn)D.longf(longn)
{staticlongs,i;{longs=1,i;
for(i=1;i<=n;i++)s=s*i;for(i=1;i〈=n;i++)s=s*i;
returns;returns;
}}
设n=10,i=4,则赋值运算“n%=i+1”执行后n的值是。
A.0B.1
C.2D.3
已有定义“inta=2;”,下面表达式中值不等于8的是。
A.a+=2,a*2B.a+=a*=a
C.(a+7)/2*((a+1)%2+1)D.a*7.2/a+1
下面选项中,可以作为用户标识符的是。
A.6_6B.void
C.unsignedD._0_
已有定义“intn;floata,b;”,则执行语句“b=n=a=3。
89;”后,b的值为。
A.3B.3.0
C.3。
89D.4.0
下列运算符中,优先级最低的是。
A.*B.!
=
C.+D.=
表达式!
(x〉0&&y〉0)等价于。
A.!
(x〉0)||!
(y>0)B.!
x〉0||!
y〉0
C.!
x〉0&&!
y〉0D.!
(x〉0)&&!
(y>0)
下面定义符号常量p为3.14中正确的是。
A.#definep3。
14;B.#definep(3.14)
C.#definep=3。
14D.#definep3。
14
若变量已正确定义,语句“if(a>b)k=0;elsek=1;”和等价。
A.k=(a〉b)?
1:
0;B.k=