C语言题库+判断题C语言题库+判断题
一、编程大题
4.编程求圆面积、圆周长。要求圆半径由键盘输入,1.有一函数:当x0时,y=1。 #include 编一程序,输入x的值,输出y的值。 void main()
#include {
int main() float r, l, s;
{ float pi=3.1415926;
int x,y; printf("表输入圆半径r:");
scanf("%d",&x); scanf("%f", &r); if (x>=0) l=2*pi*r;
if (x>0) y=1; ...
C语言题库+判断题
一、编程大题
4.编程求圆面积、圆周长。
要求
对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗
圆半径由键盘输入,1.有一函数:当x<0时,y=-1;当x=0时,y=0;当输出时要求有文字说明,取小数点后两位数字。 x>0时,y=1。 #include
编一程序,输入x的值,输出y的值。 void main()
#include {
int main() float r, l, s;
{ float pi=3.1415926;
int x,y; printf("表输入圆半径r:");
scanf("%d",&x); scanf("%f", &r); if (x>=0) l=2*pi*r;
if (x>0) y=1; s=pi*r*r;
else y=0; printf("圆周长为:l=%6.2f\n", l); else y=-1; printf("圆面积为:s=%6.2f\n", s); printf("x=%d,y=%d\n",x,y); }
return 0; 5.有分段函数:当x<-10时,y=|x|+5;当-10?x?10} 时,y=4x-8;当x>10时,y=sqrt(x)。 2.输入三个实数,将这三个数按由大到小的顺序排编一程序,输入x的值,输出y的值。 列,并输出这三个数。 #include #include int main()
int main() {
{ float a,b,c,t; int x,y;
scanf("%f,%f,%f",&a,&b,&c); scanf("%d",&x);
if(a #include int main() int main()
{int a,b,c,max; {int year,leap; printf("请输入a,b,c\n"); printf("enter year:"); scanf("%d",&year);
scanf("%d,%d,%d",&a,&b,&c); if (year%4==0) max=a; if(year%100==0) if(max c=5/9(f-32) void main ( ) #include {
int main() char ch;
{ scanf("%c",& ch); float c,f; ch=(ch>='A'&& ch<='Z')?(ch+32):ch;
printf("请输入一个华氏温度:"); printf("%c\n",ch); scanf("%f",&f); }
c=(5.0/9.0)*(f-32);
printf("摄氏温度为:%5.2f\n",c); 11.编程求圆柱体积,圆柱表面积。要求圆半径,return 0; 圆柱高由键盘输入,输出时要求有文字说明,取小} 数点后两位数字。
8.有一函数:当x<1时,y=|x|;当1<=x<10时,#include y=2x-1;当x>=10时,y=3x+11。编一程序,输入xvoid main()
的值,输出y的值。 {
float r, h, v, s; #include float pi=3.1415926; #include printf("表输入圆半径r、圆柱高h:"); void main() scanf("%f%f", &r,&h); { v=pi*r*r*h; int x, y; s=2*pi*r*r+2*pi*r*h; printf("输入x:"); printf("圆柱体积为:v=%6.2f\n", v); scanf("%d",&x); printf("圆柱表面积为:s=%6.2f\n", s); if (x<1) }
y=abs(x); 12.有分段函数:当x<-5时,y=x+10; 当-5?x?5else if (x<10) 时,y=x^2;当x>5时,y=2x-10. y=2*x-1; 编一程序,输入x的值,输出y的值。 else #include y=3*x+11; int main()
printf("x=%3d, y=%d\n",x,y); {
} int x,y;
9.输入三个实数,将这三个数按由小到大的顺序排 scanf("%d",&x); 列,并输出这三个数。 if(x<-5)
main() y=x+10;
{ int a,b,c,*p1,*p2,*p3,t; else if(x<=5) scanf("%d,%d,%d",&a,&b,&c); y=x^2;
p1=&a;p2=&b;p3=&c; else y=2*x-10; if(*p1>*p2) printf("x=%d,y=%d\n",x,y); {t=p1;p1=p2;p2=t;} return 0;
if(*p1>*p3) }
{t=p1;p1=p3;p3=t;} 13.有三个整数a,b,c,由键盘输入,输出其中最if(*p2>*p3) 小者。
{t=p2;p2=p3;p3=t;} #include printf("%d,%d,%d\n",*p1,*p2,*p3); int main()
} {int a,b,c,max;
2
printf("请输入a,b,c\n"); }
scanf("%d,%d,%d",&a,&b,&c); 17.猴子吃桃问题。猴子第一天摘下若干个桃子,max=a; 当即吃了一半,还不过瘾,又多吃了一个。 if(max>b) 第二天早上又将剩下的桃子吃掉一半,又多吃一max=b; 个。以后每天早上都吃了前一天剩下的一半零一if(max>c) 个。
max=c; 到第10天早上想吃时就剩一个桃子了。求第一天printf("最小的数为%d\n",max); 共摘了多少个桃子。
return 0; #include } int main()
14.输入一个字符,判断它是否是大写字母,如果{
是,将它转换成小写字母;如果不是,不转换。然 int day,x1,x2; 后输出最后得到的字符。 day=9;
#include x2=1;
void main ( ) while(day>0) { {x1=(x2+1)*2; char ch; x2=x1;
scanf("%c",& ch); day--;
ch=(ch>='A'&& ch<='Z')?(ch+32):ch; }
printf("%c\n",ch); printf("total=%d\n",x1); } return 0;
15.输入三角形的三边长,求三角形面积。求三角}
形面积的公式为 18.输出所有的“水仙花数”,所谓“水仙花数”是area=sqrt(s(s-a)(s-b)(s-c)),其中s=(a+b+c)/2 指一个3位数,其各位数字立方和等于该数本身。 #include #include #include void main()
void main ( ) {
{ int i,j,k,n; float a,b,c,s,area; printf("narcissus numbers are");
scanf("%f%f%f",&a,&b,&c); for(n=100;n<1000;n++) s=(a+b+c)/2; {
area=sqrt(s*(s-a)*(s-b)*(s-c)); i=n/100;
printf("%f\n",area); j=n/10-i*10; } k=n%10;
16.编程求2!+4!+6!+8!+10!的值,并输出结果。 if(n==i*i*i+j*j*j+k*k*k) #include printf("%5d",n); int main() }
{ printf("\n");
int n=1,sum=0,j,m=1,i; }
for(i=1;i<=5;i++){ 19.编程求1~100之间的所有素数,并输出结果。
m=1; #include
for(j=1;j<=2*i;j++) #include
m=m*j; int main()
sum=sum+m; {
} int n,m=0,k,i;
printf("sum=%d\n",sum); for(n=1;n<=100;n=n+2)
return 0; { k=sqrt(n);
3
for (i=2;i<=k;i++) int i;
if (n%i==0) break; double m=100,sum=0;
if (i>=k+1) for(i=0;i<10;i++){
{ printf("%d ",n); sum=sum+m;
m=m+1; m=m/2;
} }
if(m%10==0) printf("\n"); printf("%f\n",sum); } return 0;
printf("\n"); }
return 0; 23.输入两个正整数m和n,求其最大公约数和最} 小公倍数。
20.编程求1!+3!+5!+7!+9!的值,并输出结果。 #include #include void main()
int main() {
{ int p,r,n,m,temp;
int n=1,sum=0,j,m=1,i; printf("请输入n和m: ");
for(i=1;i<=5;i++){ scanf("%d,%d,%d",&n,&m);
m=1; if(n n=m;
#include m=r;
int main() }
{ int sign=1; double pi=0,n=1,term=1; printf(":%d\n",n);
while(fabs(term)>=1e-6) printf(" :%d\n",p/n);
{ pi=pi+term; }
n=n+2; 24.利用循环,编程求1!+2!+3!+„+10!的值,并输
sign=-sign; 出结果。
term=sign/n; #include
} int main()
pi=pi*4; {
printf("pi=%10.8f\n",pi); int n=1,sum=0,j,m=1,i;
return 0; for(i=1;i<=10;i++) } { m=1; 22.一个球从100m高度自由落下,每次落地后又 for(j=1;j<=i;j++) 反跳回原高度的一半,再落下,再反弹。求它在第 m=m*j;
10次落地时共经过多少米, sum=sum+m; #include }
int main() printf("sum=%d\n",sum);
{ return 0;
4
} }
25.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13......,求}
出这个数列前20项之和。 return 0;
#include }
int main()
{ 28.求S=a+aa+aaa+...+aa...a(n个a)之值。其中a是int i,n=20; 一个数字,n代表a的位数。例如:double a=2,b=1,s=0,t; 2+22+222+2222+22222(此时n为5),n由键盘输for(i=1;i<=n;i++) 入。
{ #include s=s+a/b; int main()
t=a, {
a=a+b,b=t; int a,sn=0,tn=0,k,i=1,n; } printf("a,n=:"); printf("sum=%16.10f\n",s); scanf("%d,%d",&a,&n); return 0; while(i<=n)
} {
26.求Fibonacci数列前40个数。这个数列有以下 tn=tn+a;
特点:第1和第2个数为1,从第3个数开始,该 sn=sn+tn;
数是其前面两个数之和。 a=a*10;
#include ++i;
int main() }
{ int f1=1,f2=1,f3; int i; printf("a+aa+aaa+...=%d\n",sn);
printf("%12d\n%12d\n",f1,f2); return 0;
for(i=1; i<=38; i++) }
{ f3=f1+f2; 29.编程求100~200之间的所有素数,并输出结果。
printf("%12d\n",f3); #include
f1=f2; #include
f2=f3; int main()
} {
return 0; int n,m=0,k,i; } for(n=101;n<=200;n=n+2) 27.一个数如果恰好等于它的因子之和,这个数就 { k=sqrt(n); 称为完数。例如,6的因子为1、2、3,而6=1+2+3, for (i=2;i<=k;i++)
因此6是完数。编程求1000以内所有完数。 if (n%i==0) break;
#include if (i>=k+1) int main() { printf("%d ",n); { m=m+1;
int m,s,i; }
for (m=2;m<1000;m++) if(m%10==0) printf("\n");
{s=0; }
for (i=1;i
5
void main() void main() { {
char c; int i,s=1; int letters=0,space=0,digit=0,other=0; float n,t,a; printf("\n"); t=1;a=0;n=1; while((c=getchar())!='\n') printf("input n:",n); { while(i<=n) if(c>='a'&&c<'z'||c>='A'&&c<='Z') {
letters++; a=a+t;
else if(c==' ') i=i++;
space++; t=s/i;
else if(c>='0'&&c<='9') }
digit++; printf("a=%10.6f\n",a); else }
other++; 33.将一个二维数组int a[3][4]的行和列的元素互} 换,存到另外一个二维数组中。 printf(":%d\n:%d\n:%d\n:%d\n",letters,space,digit,o#include ther); void main() } {
31.将一个数组中的值按逆序重新存放。例如,原int a[2][3]={{1,2,3},{4,5,6}};
来顺序为8,6,4,3,2,0。要求改为0,2,3,int b[3][2],i,j; 4,6,8。 printf("array a:\n"); #include for (i=0;i<=1;i++) #define N 6 {
void main() for (j=0;j<=2;j++) { {
int a[N],i,temp; printf("%5d",a[i][j]); printf("enter array a:\n"); b[j][i]=a[i][j]; for(i=0;i #include int main()
#include {
6
int i,j,m; }
for (i=1;i<=5;i++) 37.用冒泡排序法对输入的10个数进行升序排序,
{ 并存入数组中。
m=i; int paixu(x)
for(m=1;mx[i+1]) {t=x[i+1];x[i+1]=x[i];x[i]=t;}
} }
return 0; main()
} {int y[10];int i; 35.用冒泡排序法对输入的10个数进行降序排序,for(i=0;i<10;i++) 并存入数组中。 scanf("%d",&y[i]); int paixu(x) paixu(y);
int x[]; for(i=0;i<10;i++) {int i,j,t; printf("%5d",y[i]); for(j=1;j<10;j++) printf("\n"); for(i=0;i<=9-j;i++) }
if(x[i]>x[i+1]) {t=x[i+1];x[i+1]=x[i];x[i]=t;} 38.利用循环,输出以下图形 } *****
main() *****
{int y[10];int i; *****
for(i=0;i<10;i++) *****
scanf("%d",&y[i]); *****
paixu(y); #include for(i=0;i<10;i++) int main()
printf("%5d",y[i]); {
printf("\n"); int i,j,m; } for (i=0;i<5;i++) 36.有一个3乘4的矩阵,要求编程序求出其中值 {
最大的那个元素的值,以及其所在的行号和列号。 m=i;
#include for(m=0;mmax) 39.输出以下杨辉三角形(要求输出10行)。 { 1
max=a[i][j]; 1 1
row=i; 1 2 1
colum=j; 1 3 3 1
} 1 4 6 4 1 printf("max=%d,row=%d,colum=%d\n",max,row,colu1 15 10 10 5 1 m); ...
7
main() }
{ static int m,n,k,b[11][11]; 42.求一个3×3的整型矩阵对角线元素之和。 b[0][1]=1; main()
for(m=1;m<11;m++) {int i=0,j=0,a[3][3],s1,s2; {for(n=1;n<=m;n++) for(i=0;i<3;i++) { b[m][n]=b[m-1][n-1]+b[m-1][n]; for(j=0;j<3;j++) printf("%-5d",b[m][n]);}printf("\n"); scanf("%d",&a[i][j]); } s1=a[0][0]+a[1][1]+a[2][2]; } s2=a[0][2]+a[1][1]+a[2][0]; 40.利用循环输出以下图形 printf("s1=%d,s2=%d\n",s1,s2);
* }
*** 43.编写程序,将两个字符串连接起来,不要使用
***** strcat函数。
******* main()
#include { int i,j;char str1[100],str2[100],str3[201];
int main() printf("input a string:"); { gets(str1);
int i,j,m; for(i=0;str1[i]!='\0';i++)
for (i=1;i<=4;i++) str3[i]=str1[i];
{ printf("input a string:");
m=i; gets(str2);
for(m=1;m<=4-i;m++) for(j=0;str2[j]!='\0';j++)
printf(" "); str3[j+i]=str2[j];
for(j=0;j<2*i-1;j++) str3[j+i]='\0';
printf("*"); printf("%s\n",str3);
printf("\n"); }
} 44.写一个函数,求两个整数中的较大者,用主函
return 0; 数调用这个函数,并输出结果,两个整数由键盘输} 入。
41.利用循环,输出以下图形 #include ******* void main()
***** {
*** int max(int x,int y);
* int a,b,c;
#include scanf("%d,%d",&a,&b); int main() c=max(a,b);
{ printf("max is %d\n",c);
int i,j,m; }
for (i=1;i<=4;i++) int max(int x,int y)
{ {
m=i; if(x>y)
for(m=1;my? x:y; #include for(;;k++) void main() if(k%x==0&&k%y==0) break; { return(k); int cm(int x,int y); }
int cd(int x,int y); int cd(int x,int y) int a,b,m,n; {
printf("输入两个数:"); int i,j,k; scanf("%d %d",&a,&b); k=x>y? y:x; m=cm(a,b); for(i=1;i<=k;i++) n=cd(a,b); if(x%i==0&&y%i==0) j=i; printf("最大公约数是%d\n最小公倍数%d\n",n,m); return(j); } }
int cm(int x,int y)
9
二、选择题
一、选择题 for(i=0;i<10;i++) 1,该变量已正确定义为整型,则表达式scanf("%d",&a[i]); n=i=2,++i,i++ [<3>]。 for(i=1;i<10;i++) 已知字母A的ASCII值为65,下列程序运行后的输[]; 出结果是[<67 G>] for(i=1;i<10;i++) main() {printf("%d",b[i-1]); {char a,b; if(i%4==0) printf("\n"); a='A'+'5'-'3';b=a+'6'-'2'; }
printf("%d%c",a,b); }
} 8.下面程序将二维数组a的行和列互换后存放到一2.下列isprime函数的功能是判断形参a是否为素个二维数组b中,请填空。 数,是素数,函数返回1,否则返回0。请填空。 main()
int isprime(int a) {int a[2][3]={{1,2,3},{4,5}},b[3][2],i,j;
{int i; for(i=0;i<2;i++) for(i=2;i<=a/2;i++) {
if(a%i==0)[]; for(j=0;j<3;j++) []; [] } }
3.设有定义:float x=123.4567;,则执行下列语句后
的输出结果是[<123.460000>] }
printf("%f\n",(int)(x*100+0.5)/100.0);
4.若有定义:int a=4,b=5,c=6;接着顺序执行下列语
句后,变量b中的值是[<1>]。
c=(a-=(b-5));
c=(a%3)+(b=1);
若a的值为1,则表达式!a||++a的值是[<1>]。 1.下列叙述中错误的是( ) 5.下列程序的功能是:求出数组x中各相临两个元A.算法正确的程序最终一定会结束。 素的和依次存放到数组a中,然后输出。请填空。 B.算法正确的程序可以有零个输出。 main() C.算法正确的程序可以有零个输入。 {int x[10],a[9],i; D.算法正确的程序对于相同的输入一定有相同的for(i=0;i<10;i++) 结果。
scanf("%d",&x[i]); ~B
for([];i<10;i++) 2.下列叙述中错误的是( ) a[i-1]=x[i]+[]; A.C程序必须由一个或一个以上的函数组成。 for(i=0;i<9;i++) B.函数调用可以作为一个独立的语句存在。 printf("%d",a[i]); C.若函数有返回值,必须通过return语句返回。 printf("\n"); D.函数形参的值也可以传回给对应的实参。 } ~D
6.设有定义语句:int a[][3]={{0},{1},{3}},则数组元素3.C语言源程序名的后缀是( ) a[1][2]是[<0>] A.exe
7.下列程序中的数组a包括10个整数元素,从aB.c
中第二个元素起,分别将后项减前项之差存入数组C.obj
b,并按每行4个输出,请填空。 D.cp
main() ~B
{int a[10],b[10],i; 4.下列叙述中错误的是( )
10
A.用户定义的标示符允许使用关键字。 D.main可作为用户标示符,可以命名任意一个函B.用户定义的标示符应做到“见名知意”。 数作为主函数
C.用户定义的标示符必须以字母或下划线开头。 ~C
D.用户定义的标示符中大、小写字母代表不同标11.下列叙述正确的是( ) 示。 A.C程序中的注释只能出现在程序的开始位置 ~A B.C程序书写格式严格,要求一行只能写一个语句 5.下列关于函数的叙述正确的是( ) C.C程序书写格式自由,一行可以写多条语句 A.每个函数都可以被其他的函数调用(包含mainD.用C语言编写的程序只能放在一个程序文件中 函数)。 ~C
B.每个函数都可以被单独编译。 12.下列不合法的数值常量是( ) C.每个函数都可以单独运行。 A.011
D.在一个函数内部可以定义另一个函数。 B.1e1
~B C.8.0e0.5
6.下列不合法的用户标示符是( ) D.0xabc
A.j2_key ~C
B._int 13.可在C程序中用作用户标识符的一组是( ) C.4d A.and _2007 D._8_ B.date y-m-d ~C C.hi dr.tom 7.下列定义变量的语句中错误的是( ) D.case big1 A.int _int; ~A
B.double int_; 14.下列关于long、int和short类型数据占用内存C.char for; 大小的叙述正确的是( ) D.float us$; A.均占4个字节
~D B.根据数据的大小来决定所占内存的字节数 8.按照C语言规定的用户标示符命名
规则
编码规则下载淘宝规则下载天猫规则下载麻将竞赛规则pdf麻将竞赛规则pdf
,不能出C.由用户自己定义
现在标示符中的是( ) D.由C语言编译系统决定 A.大写字母 ~D
B.连字符 15.设变量已正确定义并赋值,以下正确的表达式C.数字字符 是( )
D.下划线 A.x=y*5=x+z ~B B.int(15.8%3) 9.对于一个正常运行的C程序,下列叙述正确的是C.x=y+z+3,++y ( ) D.x=25%5.0
A.程序的执行总是起止于main函数。 ~C
B.程序的执行总是从第一个函数开始,结束于main16.设有定义:int k=1;float f=7;则下列选项中错误的函数 表达式是( )
C.程序的执行总是从main函数开始,在最后一个A.k=k>=k
函数结束 B.-k++
D.程序的执行总是从第一个函数开始,在最后一个C.k%int(f)
函数结束 D.k>=f>=m
~A ~C
10.下列叙述正确的是( ) 17.表达式3.6-5/2+1.2+5%2的值是( ) A.C语言程序从源程序中第一个函数开始执行 A.4.3
B.可以在程序中由用户指定一个函数作为主函数,B.4.8
程序将从此开始执行 C.3.3
C.C语言规定必须用main作为主函数名,程序从D.3.8
此开始执行,在次结束 ~D
11
18.下列叙述中错误的是( ) D.程序运行时产生出错信息 A.C程序中的#include和#define行均不是C语句 ~B
B.除逗号运算符外,赋值运算符的优先级最低 25.有下列程序:
C.C程序中,j++;是赋值语句 *main()
D.C程序中,+、-、*、%是算术运算符,可用于整*{int x,y,z; 型数和实型数的运算 *x=y=1;
~D *z=x++,y++,++y; 19.下列选项中,当x为大于1的奇数时,值为0*printf("%d,%d,%d\n",x,y,z); 的表达式是( ) *}
A.x%2==1 *程序运行的结果是( )
B.x/2 A.2,3,3
C.x%2!=0 B.2,3,2
D.x%2==0 C.2,3,1
~D D.2,2,1
20.下列叙述中错误的是( ) ~C
A.C语句必须以分号结束 26.设有定义:int k=0;下列选项的4个表达式中与B.复合语句在语法上被看作一条语句 其他3个表达式的值不同的是( ) C.空语句出现在任何位置都不会影响程序运行 A.k++
D.赋值表达式加上分号就构成赋值语句 B.k=k+1
~C C.++k
21.下列正确定义且赋初值的语句是( ) 8.k+1
A.int n1=n2=10; ~A
B.char c=32; 27.在C语言中,以下说法不正确的是( ) C.float f=f+1.1; A.在C程序中,整数和实数都能被准确无误的表示D.double x=12.3E2.5 出来
~B B.在C程序中,任何一个变量名都代表存储器的一22.若变量已正确定义并赋值,下列合法的语句是个位置
( ) C.静态变量的生存周期与整个程序的运行期相同 A.x=y==5 D.C语言中,任何变量都必须先声明才能进行引用 B.x=n%2.5 ~A
C.x+n=i 28.若有以下定义和语句:
D.x=5=1+4 *int a=010,b=0x10,c=10; ~A *printf("%d,%d,%d\n",a,b,c); 23.以下定义正确的是( ) *则输出结果是( )
A.int a=b=0; A.8,10,10
B.char A=65+1,b='b'; B.10,10,10
C.float a=1,"b=&a,"c=&b; C.8,8,10
D.double a=0.0;b=1.1; D.8,16,10
~B ~D
24.有下列程序: 29.设C语言中,float类型数据占4个字节,则*main() double类型数据占( )个字节 *{char a1='M',a2='m'; A.1
*printf("%c\n",(a1,a2)); B.2
*} C.8
下列叙述正确的是( ) D.4
A.程序输出M ~C
B.程序输出m 30.以下正确的实型常量( ) C.格式说明符不足,编译出错 A.E3.4
12
B.-12345 C.5.500000
C.2.2e0.8 D.55.00000
D.4 ~C
~B 37.若a为int型变量,则执行以下语句后,a的值31.设int类型的数据长度为2个字节,则unsigned 为( )
int类型数据的取值范围是( ) *a=5;a+=a-=a*a; A.0~255 A.25
B.0~65535 B.-40
C.-32768~32767 C.40
D.-256~255 D.-14
~B ~B
32.设a和b均为int型变量,且a=6,b=11,则能使38.若已定义x和y为整型变量,且x=7,则表达式值为3的表达式是( ) y=2.3+x/2的值是( )
A.b%(a%4) A.6
B.b%(a-a%5) B.5
C.b%a-a%5 C.5.0
D.(b%a)-(a%4) D.6.0
~D ~B
33.已定义变量a为整型,则不能正确表示99&&a<14 *}
D.!(a<=9)&&!(a>=14) *执行后的输出结果是( ) ~A A.3,5
34.以下程序运行的结果是( ) B.2,5
*#include C.3,3
*main() D.1,5
*{int a=3,b=4,c=8,d=4,m=1,n=3; ~D
*printf("%d\n",(m=a>b)&&(n=c>d)) 40.以下程序的输出结果是( ) *} *main()
A.0 *{int a=1,b=2; B.1 *printf("%d,%d\n",--a,++b); C.2 *}
D.3 A.1,2
~A B.1,3
35.能正确表示“当x的取值范围在[1,10]和[100,110]C.0,2
范围内为真,否则为假”的表达式是( ) D.0,3
A.(x>=1)&&(x<=10)&&(x>=100)&&(x<=110) ~D
B.(x>=1)||(x<=10)||(x>=100)||(x<=110) 41.C语言程序的执行是( ) C.(x>=1)&&(x<=10)||(x>=100)&&(x<=110) A.从程序的主函数开始,到程序的主函数结束 D.(x>=1)||(x<=10)&&(x>=100)||(x<=110) B.从程序的主函数开始,到程序的最后一个函数结~C 束
36.若有定义:int a=4,b=5;float x=3.4,y=2.1;则下面C.从程序的第一个函数开始,到程序的最后一个函表达式的值为( ) 数结束
*(float)(a+b)/2+(int)x%(int)y D.从程序的第一个函数开始,到程序的主函数结束 A.5.5 ~A
B.55 42.下面说法正确的是( )
13
A.一个C程序可以有多个函数 *for(i=0;i<3;i++) printf("%d",t[2-i][i]);
B.一个C语言的函数中只允许有一对花括号 *}
C.C语言一个语句可以写在一行内,也可以写在多*程序执行后的输出结果是( )
行内 A.7 5 3
D.在对C程序进行编译时,可以发现注释行中的拼B.3 5 7
写错误 C.3 6 9
~C D.7 5 1
43.以下说法正确的是( ) ~B
A.C程序是以函数为基本单位的,整个程序由函数49.若有定义语句:int a[3][6];,按内存中的存放顺组成 序,a数组的第10元素是( )
B.C语言程序的一条语句可以写在不同的行上 A.a[0][4]
C.C程序的注释行对程序运行不起作用,所以注释B.a[1][3]
应该尽可能少写 C.a[0][3]
D.C程序的每个语句都以分号结束 D.a[1][4]
~C ~B
44.以下标示符不是关键字的是( ) 50.以下错误的定义语句是( )
A.break A.int x[][3]={{0},{1},{1,2,3}}; B.char B.int x[4][3]={{1,2,3},{1,2,3},{1,2,3}}; C.Switch C.int x[4][]={{1,2,3},{1,2,3},{1,2,3}}; D.return D.int x[][3]={1,2,3,4}; ~C ~C
45.若要求定义具有10个int型元素的一维数组a,51.以下不正确的定义语句是( )
则下列定义语句中错误的是( ) A.double x[5]={1.0,2.0,3.0,4.0,5.0}; A.#define N 10 B.int y[5]={0,1,2,3,4,5}}; *int a[N] C.char c[]={'1','2','3','4','5'}; B.#define n 5 D.char c2[]={'a','b','c'}; *int a[2*n] ~B
C.int a[5+5] 52.若有以下定义,则正确引用数组元素的是( ) D.int n=10,a[n] *int a[5],*p=a;
~D A. *&a[5]
46.下设有如下程序段 B. *a+2
*char s[20]="Beijing",*p; C. *(p+5)
*p=s; D. *(a+2)
*则执行p=s;语句后,以下叙述正确的是( ) ~D
A.可以用*p表示s[0] 53.若有说明:int a[][3]={0,0};则不正确的叙述是( ) B.s数组中元素的个数和p所指字符串长度相等 A.数组a的每个元素的初值都是0
C.s和p都是指针变量 B.数组a的第一维大小为1
D.数组s中的内容和指针变量p中的内容相同 C.数组a的行数为1
~A D.只有元素a[0][0]和a[0][1]初值为0,其余元素得47.下列数组定义中错误的是( ) 不到初值0
A.int x[][3]={0}; ~D
B.int x[2][3]={{1,2},{3,4},{5,6}}; 54.下列二维数组初始化语句中,不正确的是( ) C.int x[][3]={{1,2,3},{4,5,6}}; A.int b[][2]={1,2,3,4,5,6,7}; D.int x[2][3]={1,2,3,4,5,6}; B.int b[3][5]={0,0,0}; ~B C.int b[][4]={{1,2},{3,4,5},{6}}; 48.有以下程序: D,int b[3][2]={(1,2),(3,4),(5,6)}; *main() ~D
*{int i,t[][3]={9,8,7,6,5,4,3,2,1}; 55.有以下程序:
14
*main() A.pk=k;
*{int B.pk[0]=&k[1][2]; aa[5][5]={{1,2,3,4},{5,6,1,8},{5,9,10,2},{1,2,5,6}}; C.pk=k[0];
*int s=0,i; D.pk[1]=k;
*for(i=0;i<4;i++) ~B
*s+=aa[i][2]; 61.若有定义:char(*p)[6];则标识符p( ) printf("%d",s); A.是一个指向字符型变量的指针 *} B.是一个指针数组名
*程序运行后的输出结果是( ) C.是一个指针变量,它指向一个含有6个字符型元A.26 素的一维数组
B.19 D.定义不合法
C.10 ~C
D.20 62.下面程序段的运行结果是( ) ~B #include
void main() 56.设已有定义:float x;,则下列对指针变量p进{ char str[]="abc",*p=str; 行定义且赋初值的语句中正确的是( ) printf("%d\n",*(p+3)); A.float *p=1024; }
B.int *p=(float)x; A.67
C.float p=&x; B.0
D.float *p=&x; C.字符'C'的地址
~D D.字符'C'
57.设有定义语句int (*f)(int);,则以下叙述正确的~B
是( ) 63.若有以下定义,则对a数组元素的正确引用是A.f是基类型为int的指针变量 ( )
B.f是指向函数的指针变量,该函数具有一个intint a[5],*p=a; 类型的形参 A.*&a[5]
C.f是指向int类型一维数组的指针变量 B.*a+1
D.f是函数名,该函数的返回值是其类型为int类型C.*(p+5)
的地址 D.*(a+2)
~B ~D
58.设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下64.数字字符0的ASC||值为48,运行下列程序的赋值语句中与n2=n1;语句等价的是( ) 输出结果是( )
A.*p=*q main()
B.p=q { char a='1',b='2'; C.*p=&n1; printf("%c,",b++); D.p=*q printf("%d\n",b-a); ~A }
59.在16位编译系统上,若有定义int A.3,2
a[]={10,20,30},*p=&a;,当执行p++;后,下列说法错B.50,2
误的是( ) C.2,2
A.p向高地址移了一个字节 D.2,50
B.p向高地址移了一个存储单元 ~C
C.p向高地址移了两个字节 65.下列不合法的字符常量是( )。 D.p与n+1等价 A.'\018'
~A B.'\"'
60.若有定义语句:int k[2][3],*pk[3];,则下列语句C.'\\'
中正确的是( ) D.'\xcc'
15
~A printf("k=%d\n",k); 66.下列能正确定义字符串的语句是( ) 已知字符a的ASC||十进制代码为97,则执行上述A.char str[]={'\064'}; 程序段后输出结果是( ) B.char str="kx43"; A.因变量类型与格式描述符的类型不匹配输出无C.char str=''; 定值
D.char str[]="\0"; B.输出项与格式描述符个数不符,输出为零值或不~D 定值
67.下列合法的字符型常量是( ) C.a,97,12k=12 A.'\x13' D.a,97,k=12
B.'\081' ~D
C.'65' 73.有定义语句:int b;char c[10];,则正确的输入语D."\n" 句是( )
~A A.scanf("%d%s",&b,&c); 68.已知大写字母A的ASC||码是65,小写字母aB.scanf("%d%s",&b,c); 的ASC||码是97。下列不能将变量c中的大字字母C.scanf("%d%s",b,c); 转换为对应小写字母的语句是( ) D.scanf("%d%s",b,&c); A.c=(c-'A')%26+'a' ~B
B.c=c+32 74.设有定义:int a; float b;,执行C.c=c-'A'+'a' scanf("%2d%f",&a,&b);语句时,若从键盘输入D.c=('A'+C)%26-'a' 876543.0,a和b的值分别是( ) ~D A.876和543.000000 69.已知字符'A'的ASC||码值是65,字符变量c1的B.87和6.000000
值是'A',c2的值是'D'。执行语句C.87和543.000000 printf("%d,%d",c1,c2-2);后,输出结果是( ) D.76和543.000000 A.A,B ~B
B.A,68 75.设变量均已正确定义,若要通过C.65,66 scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量D.65,68 a1和a2赋数值10和20,为变量c1和c2赋字符~C X和Y。下面的输入形式中正确的是( )(注:?代
表空格字符)。
70.下列正确的字符串常量是( ) A.10?X?20?Y
A."\\\" B.10?X20?Y
B.'abc' C.10?X20Y C.Olympic Games D.10X20?Y
D."" ~A
~D 76.有下列程序段:
71.要求通过while循环不断读入字符,当读入字母int j; float y;char name[50]; N时结束循环。若变量已正确定义,下列正确的程scanf("%2d%f%s",&j,&y,name); 序段是( ) 当执行上述程序段,从键盘上输入55566 7777abcA.while((ch=getchar())!='N') printf("%c",ch); 后,y的值为( )
B.while(ch=getchar()!='N') printf("%c",ch); A.55566.0
C.while(ch=getchar()=='N') printf("%c",ch); B.566.0
D.while((ch=getchar())=='N') printf("%c",ch); C.7777.0
~A D.566777.0
72.有以下程序段 ~B
char ch;int k; 77.以下选项中不是字符常量的是( ) ch='a';k=12; A.'\v'
printf("%c,%d,",ch,ch,k); B.'\x2a'
16
C.'a' 83.若有以下定义和语句:
D."\0" int u=011,v=0x11,w=11; ~D printf("%o,%x,%d\n",u,v,w); 78.以下选项中非法的字符常量是( ) 则输出结果是( )
A.'\\' A.9,17,11
B.'\020" B.9,11,11
C.'\xAA' C.11,11,11
D.'0' D.11,17,11
~B ~C
79.在执行完下面的C语句段之后,则B的值是( ) 84.语句"printf("a\bhow\'are\'y\\\bou\n");"的输出char a='A'; 结果是( )
int b; A.a\bhow\'are\'y\\bou B=((34&&56)&&(a<'b')); B.a\bhow\'are\'y\bou A.0 C.how'are'you B.1 D.ahow'are'y\bou C.TRUE ~C
D.FALSE 85.若变量已正确定义,要求通过~B scanf("%c%d%c%d",&c1,&a,&c2,&b)语句给变量a80.若变量已正确定义,以下正确的程序段是( ) 和b赋数值32和45,给变量c1和c2赋字符A和A.while(ch=getchar()=='\N') putchar(ch); B;以下选项中数据从第1列开始输入,正确的输B.while((ch=getchar())=='\n')putchar(ch); 入形式是( )
C.while((ch=getchar())!='\N')putchar(ch); A.A32<回车>B45<回车>
D.while((ch=getchar())!='\n')putchar(ch); B.A45<回车>B32<回车>
~D C.A32B45<回车>
81.若变量已正确定义,下面程序段的输出结果是D.A 32 B 45<回车>
( ) ~D
#include 86.若有"double a;",则正确的输入语句是( ) main() A.scanf("%lf",a); {float x=1.236547; B.scanf("%f",&a);
printf("%f\n",(int)(x*1000+0.5)/(float)1000); C.scanf("%lf",&a); } D.scanf("%le",&a); A.1.237000 ~D
B.输出格式说明与输出项不匹配,输出无定值 87.已知i、j、k为int型变量,若要从键盘输入2,3,4,使i、j、k的值分别为2、3、4,以下正确D.1.24 的输入语句是( )
~A A.scanf("%3d,%3d,%3d",&i,&j,&k);
82.设已定义x为double类型变量: B.scanf("%d,%d,%d",&i,&j,&k); #include C.scanf("%d%d%d",&i,&j,&k); main() D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);
{ float x=323.82631; ~B
printf("%.2e\n",x); 88.下列运算符中优先级最高的运算符是( ) } A.!
则以上语句( ) B.%
A.输出格式描述符的域宽不够,不能输出 C.-=
B.输出为32.38e+01 D.&&
C.输出为3.24e+002 ~A
D.输出为3.24e2 89.下列运算符中优先级最低的运算符是( ) ~C A.||
17
B.!= 96.对以下说明语句的正确理解是( ) C.<= *int a[10]={6,7,8,9,10} D.+ A.将5个初值依次赋给a[1]至a[5] ~A B.将5个初值依次赋给a[0]至a[4] 90.为表示关系x?y?z,应使用的C语言表达式是C.将5个初值依次赋给a[6]至a[10] ( ) D.因为数组长度与初值的个数不相同,所以此语句A.(x>=y)&&(y>=z) 不正确
B.(x>=y)AND(y>=z) ~B
C.(x>=y>=z) 97.以下程序段给数组所有元素输入数据,应在下D.(x>=y)&(y>=z) 划线处填入的是( )
~A *main()
91.设a、b和c都是int型变量,且a=3,b=4,c=5;*{
则以下的表达式中,值为0的表达式是( ) *int a[10],i=0; A.a&&b *while(i<10) scanf("%d",_______);
B.a<=b *:
C.a||b+c&&b-c *:
D.!(a C.实参将其地址传递给形参,并释放原先占用的存main()
储单元 { char p[]={'a','b','c'},q[10]={'a','b','c'};
D.实参将其值传递给形参,调用结束时形参并不将 printf("%d%d\n",strlen(p),strlen(q));
其值回传给实参 }
~D 下列叙述中正确的是( )
126.下面说法不正确的是( ) A.在给p和q数组赋初值时,系统会自动添加字符A.调用函数时,实参可以是表达式 串结束符,故输出的长度都为3 B.调用函数时,实参和形参可以共用内存单元 B.由于p数组中没有字符串结束符,长度不能确C.调用函数时,将实参的值复制给形参,使实参变定,但q数组中字符串长度为3 量和形参变量在数值上相等 C.由于q数组中没有字符串结束符,长度不能确D.调用函数时,实参与形参的类型必须一致 定,但p数组中字符串长度为3 ~B D.由于p和q数组中都没有字符串结束符,故长度127.下面函数调用语句含有实参的个数为( ) 都不能确定
func((exp1,exp2),(exp3,exp4,exp5)); ~A
A.1 133.若要求从键盘读入含有空格字符的字符串,应B.2 使用函数( )
C.3 A.getc()
D.5 B.gets()
~B C.getchar()
21
D.scanf() 140.设已执行预编译命令#include,以下程~B 序段的输出结果是( )
134.当用户要求输入的字符串中含有空格时,应使char s[]="abcdefg"; 用的输入函数是( ) printf("%d\n",strlen(s)); A.scanf() A.7
B.getchar() B.8
C.gets() C.9
D.getc() D.10
~C ~A
135.当有定义语句:char s[10];,若要从终端给s输141.若已包括头文件且已有定义char 入5个字符,错误的输入语句是( ) s1[18],s2={"ABCDE"}和int i,现要将字符串"ABCDE"gets(&s[0]); 赋给s1,下述语句错误的是( ) scanf("%s",s+1); A.strcpy(s1,s2); gets(s); B.strcpy(s1,"ABCDE"); scanf("%s",s[1]); C.s1="ABCDE"; ~D D.for(i=0;i<6;i++) 当以下叙述中错误的是( ) s1[i]=s2[i]; A.gets函数用于从终端读入字符串 ~C
B.getchar函数用于从磁盘文件读入字符 142.在下列给出的表达式中,与while(E)中的(E)不C.fputs函数用于把字符串输出到文件 等价的表达式是( )
D.fwrite函数用于以二进制形式输出数据到文件 A.(!E==0)
~B B.(E>0||E<0) 136.下列关于字符串的叙述中正确的是( ) C.(E==0)
A.C语言中有字符串类型的常量和变量 D.(E!=0)
B.两个字符串中的字符个数相同时才能进行字符~B
串大小的比较 143.已知字母A的ASCII值为65,若变量kk为charC.可以用关系运算符对字符串的大小进行比较 型,以下不能正确判断出kk的值为大写字母的表D.空串一定比空格打头的字符串小 达式是( )
~D A.kk>='A'&&kk<='Z' 137.下面能正确进行字符串赋值的是( ) B.!(kk>='A'||kk<='Z') A.char s[5]={"ABCDE"}; C.(kk+32)>='a'&&(kk+32)<='z' B.char s[5]={'A','B','C','D','E'}; D.isalpha(kk)&&(kk<91) C.char*s; s="ABCDE"; ~B
D.char*s;printf("%s",s); 144.设有定义:int a=2,b=3,c=4;,则下列选项中值为~C 0的表达式是( )
138.字符串"\\\"ABCDEF\"\\"的长度是( ) A.(!a==1)&&(!b==0) A.15 B.(a=2&&c<=6)||(c!=3)||(c!=5) D.4
C.(c>=2&&c<=6)&&!(c%2) ~A
D.(c>=2&&c<=6)&&(c%2!=1) 153.若a=3,b=4,c=5,d=6,则条件表达式~C ay&&y!=0) *}
C.if (x>0) x-- else y++ 17
D.if (y<0){;} else x++; 37
~C 6
149.若变量已正确定义,有以下程序段: 13
*int a=3,b=5,c=7; ~C
*if(a>b) a=b;c=a; 155.当a=1,b=2,c=3,d=4时,执行下面程序段后,x
*if(c!=a) c=b; 的值是( )
*printf("%d,%d,%d\n",a,b,c); *if(a=8) break; A.无限循环
*if(a%2==1) B.循环次数不定
*{a+=5;continue;} C.最多执行6次
*a=3; D.最多执行5次
*} ~D
*printf("%d\n",b);} 166.下面结论中错误的是( ) A.3 A.可以用do while语句实现的循环一定可以用B.4 while语句实现
C.5 B.可以用for语句实现的循环一定可以用while语D.6 句实现
~B C.可以用while语句实现的循环一定可以用for语
24
句实现 *}
D.do while语句和while语句的区别仅是while出现A.0
的位置不同 B.1
~D C.2
167.若i,j已定义成int型,则以下程序段中内循环D.3
体的总执行次数是( ) ~A
*for(i=6;i>0;i--) 173.有定义语句:int b;char c[10];,则正确的输入*for(j=0;j<4;j++){...} 语句是( )
A.20 A.scanf("%d%s",&b,&c); B.24 B.scanf("%d%s",&b,c); C.25 C.scanf("%d%s",b,c); D.30 D.scanf("%d%s",b,&c); ~B ~B
168.以下循环体的执行次数是( ) 174.有下列程序:
*main() *main()
*{int i,j; *{ int m,n,p; *for(i=0,j=1;i A.1/3*sin(1/2)*sin(1/2) *main() B.sin(0.5)*sin(0.5)/3 *{ int a=3,b=4,c=8,d=4,m=1,n=3; C.pow(sin(0.5),2)/3 * printf("%d\n",(m=a>b)&&(n=c>d)); D.1/3.0*pow(sin(1.0/2),2)
25
~A 183.有以下函数定义:
178.在printf的格式字符中,e格式字符的作用是*int fun(double a,double b) ( ) *{return a*b;} A.以十六进制无符号形式输出整数 *若以下选项中所有变量都已经定义并赋值,错误B.以带符号的十进制形式输出整数 的函数调用是( )
C.以指数形式输出实数 A.if(fun(x,y)){......} D.以字符形式输出,且只输出一个字符 B.z=fun(fun(x,y),fun(x,y)); ~C C.z=fun(fun(x,y)x,y); 179.若要从键盘读入含有空格字符的字符串,应使D.fun(x,y);
用函数( ) ~C
A.getc() 184.执行以下语句段后,xy的值是( ) B.gets() *int *pt,xy; C.getchar() *xy=200;
D.scanf() *pt=&xy;
~B *xy=*pt+30;
180.当a=4,b=5,c=7,d=6时,执行下面一段程A.200
序: B.170
*if(a=5或a<=0”的C语B.在该函数内都有效
言表达式是( ) C.在本程序的原文件范围内均有效 A.a>=5 or a<=0 D.此定义方法错误,其变量为非法变量 B.a>=0 || a<=5 ~A
C.a>=5 && a<=0 196.以下不正确的定义语句是( ) D.a>=5 || a<=0 A.double x[5]={1.0,2.0,3.0,4.0,5.0};
~D B.int y[5]={0,1,2,3,4,5}; 190.以下能正确表示x在-5到5(含-5和5)内,C.char c1[]={'1','2','3','4','5'};
值为“真”的表达式是( ) D.char c2[]={'a','b','c'}; A.(x>=-5)&&(x<=5) ~B
B.!(x>=-5||x<=5) 197.C语言中,凡未指定存储类别的局部变量的隐C.x<5 && x>-5 含存储类别是( )
D.(x<-5)||(x<5) A.自动(auto)
~A B.静态(static)
191.以下关于运算符优先顺序描述中正确的是( ) C.外部(extern)
A.算术运算符<关系运算符<赋值运算符<逻辑运算D.寄存器(register)
符 ~A
B.赋值运算符<逻辑运算符(不包括~)<关系运算198.如果要打开一个已经存在的非空文件“FILE”符<算术运算符 并进行修改,正确的语句是( ) C.逻辑运算符<关系运算符<算术运算符<赋值运算A.fp=fopen("FILE","r"); 符 B.fp=fopen("FILE","a+"); D.关系运算符<算术运算符<赋值运算符<逻辑运算C.fp=fopen("FILE","w+"); 符 D.fp=fopen("FILE","r+"); ~B ~D
192.以下合法的C语言赋值语句是( ) 199.下列程序的功能时:给r输入数据后计算半径A.a=b=1 为r的圆面积s。程序在编译时出错。 B.a=int a+b main()
C.a=2,b=3 { int r; float s; D.i++; scanf("%d",&r); ~D s=pi(非法)*r*r;
193.若i、j已定义成int型,则以下程序段中内循printf("s=%f\n",s); 环体的总执行次数是( ) }
*for(i=6;i>0;i--) 出错的原因是( )
*for(j=0;j<4;j++){...} A.注释语句书写位置错误
A.20 B.存放圆半径的变量r不应该定义为整型 B.24 C.输出语句中格式描述符号非法 C.25 D.计算圆面积的赋值语句中使用了非法变量 D.30 ~D
~B 200.以下叙述错误的是( )
194.以下选项中非法的字符常量是( ) A.在程序中凡是以“#”开始的语句行都是预处理A.'\\' 命令行
B.'\0201' B.预处理命令行的最后不能以分号表示结束 C.'\xAA' C.#define MAX是合法的宏定义命令行 D.'0' D.C程序对预处理命令行的处理是在程序执行的~B 过程中进行的
195.如果在一个函数的复合语句中定义了一个变~C
27
201.下列叙述中正确的是( ) C.C程序在执行过程中对预处理命令进行处理 A.预处理命令行必须位于源文件的开头 D.预处理命令可以放在程序的任何位置 B.在源文件的一行上可以有多条预处理命令 ~C
C.宏名必须用大写字母表示 207.下面叙述中正确的是( )
D.宏替换不占用程序的运行空间 A.C语言中预处理是指完成宏替换和文件包含指定~D 的文件的调用
202.若程序中有宏定义行:#define N 100,则下列B.预处理命令只能位于C源程序文件的首部 叙述中正确的是( ) C.预处理命令可以放在程序中的任何位置 A.宏定义中定义了标识符N的值为整数100 D.预处理命令结尾需要加分号
B.在编译程序对C源程序进行预处理时用100替换~C
标识符N 208.以下有关宏替换的叙述不正确的是( ) C.对C源程序进行编译时用100替换标识符N A.使用宏定义可以嵌套
D.在运行时用100替换标识符N B.宏定义仅仅是符号替换
~B C.双引号中出现的宏名不替换
203.程序 D.宏名必须用大写字母表示
#include ~D
#define M 5 209.在“文件包含”预处理语句的使用形式中,当#define N M+M #include后面的文件名用尖括号(<>)括起时,寻main() 找被包含文件的方式是( )
{ int k; A.仅仅搜索当前目录
k=N*N*5; B.仅仅搜索源程序所在目录
printf("%d\n",k); C.在标准目录下查找指定文件
} D.先在源程序所在目录搜索,如没找到,再按系统的输出结果是( ) 指定的标准目录查找
A.100 ~C
B.50 210.下列对结构体类型变量td的定义中,错误的C.55 是( )
D.45 A. typedef struct aa B. struct aa
~C { int n; { int n;
204.下列叙述中正确的是( ) float m; float m;
A.预处理命令行必须位于C源程序的起始位置 }AA; }td; B.在C语言中,预处理命令行都以#开头 AA td;
C.每个C程序必须在开头包含预处理命令行:C. struct D. struct
#include {int n; { int n; D.C语言的预处理不能实现宏定义和条件编译的功 float m; float m;
能 }aa; }td; ~B struct aa td;
205.C语言的编译系统对宏命令的处理是( ) ~C
A.在系统对源程序进行编译前 211.下列叙述错误的是( )
B.和其他语句的编译同时进行 A.可以通过typedef增加新的类型
C.在程序连接时进行 B.可以用typedef将已存在的类型用一个新的名字D.在程序运行时进行 来代表
~A C.用typedef定义新的类型名后,原有的类型名仍206.以下叙述中不正确的是( ) 有效
A.预处理命令行都必须以“#”号开始,结尾不加D.用typedef可以为各种类型起别名,但不能为变分号 量起别名
B.在程序中凡是以“#”开始的语句行都是预处理~A
命令行 212.设有以下语句:
28
typedef struct TT fread(buffer,size,count,fp);,其中buffer代表的是( ) {char c;int a[4];}CIN; A.一个文件指针,指向待读取的文件 则下列叙述中正确的是( ) B.一个整型变量,代表待读取的数据的字节数 A.可以用TT定义结构体变量 C.一个内存块的首地址,代表读入数据存放的地址 B.TT是 struct类型的变量 D.一个内存块的字节数
C.可以用CIN定义结构体变量 ~C
D.CIN是struct TT类型的变量 218.如果需要打开一个已经存在的非空文件“FILE"~C 并进行修改,正确的语句是( ) 213.下列关于typedef的叙述错误的是( ) A.fp=fopen("FILE","r"); A.用typedef可以增加新的类型 B.fp=fopen("FILE","a+"); B.typedef只是将已存在的类型用一个新的名字来C.fp=fopen("FILE","w+"); 代表 D.fp=fopen("FILE","r+"); C.用typedef可以为各种类型说明一个新名,但不~D
能用来为变量说明一个新名 219.若以"a+"方式打开一个已存在的文件,则以下D.用typedef为类型说明一个新名,通常可以增加叙述正确的是( )
程序的可读性 A.文件打开时,原有文件内容不被删除,位置指针~A 移到文件末尾,可作添加或读操作 214.有以下结构体类型说明和变量定义中正确的B.文件打开时,原有文件内容不被删除,只能进行是( ) 读操作
A. typedef struct B. struct REC C.文件打开时,原有文件内容被删除,只能进行写{ int n;char c;}REC; { int n;char c;}; 操作
REC t1,t2; REC t1,t2; D.以上各种说法都不正确
~A
C. typedef struct REC; D. struct 220.使用fgets(str,n,p)函数从文件中读入一个字符
{ int n=0;char c='A';}t1,t2; { int n;char c;}REC; 串,以下叙述错误的是( )
REC t1,t2; A.字符串读入后会自动加入'\0' ~A B.fp是指向该文件的文件型指针 215.定义以下结构体数组: C.fgets函数将从文件中最多读入n-1个字符 struct st D.fgets函数将从文件中最多读入n个字符 { char name[15]; ~D
int age;
}a[10]={"ZHAO",14,"WANG",15,"LIU",16,"ZHANG",17
};
执行语句printf("%d,%c"a[2].age,*(a[3].name+2)))的
输出结果为( )
A.15,A
B.16,H
C.16,A
D.17,H
~C
216.设fp为指向某二进制文件的指针,且已读到
此文件末尾,则函数feof(fp)的返回值为( )
A.EOF
B.非0值
C.0
D.NULL
~B
217.读取二进制文件的函数调用形式为:
29
27、算术运算符优先级高于关系运算符。~y 三、判断题 28、逻辑非是逻辑运算符中优先级最高的。~y 1、计算机的一切操作都是由程序控制的,离开了29、switch语句是多分支选择语句。~y
30、在判断一个量是否为“真”时,以0代表“假”,程序,计算机将一事无成。~y 以非0代表“真”。~y
2、所谓程序就是一组计算机能识别和执行的指令。 31、C语言中实现循环结构的3个语句是for语句、~y while语句和do-while语句。~y 3、由于计算机能直接识别和接受机器指令,所以32、for(; ;)和while(1)构成的都是无限循环。 机器语言是最适合人们编程的语言。~n ~y
4、编译程序可以把用高级语言写的程序转换为机33、C语言中实现循环结构的while语句和器指令的程序。~y do-while语句是完全等价的。~n 5、一般而言,我们把用高级语言编写的程序称为34、执行语句for(i=1;i++<4;);后变量i的值是4 目标程序。~n ~n
6、在生成可执行程序前,应该先编译再连结。~y 35、for语句只能用于循环次数已经确定的情况。 7、高级语言之所以高级,就在于用它来编写程序~n
可以不遵循任何形式。~n 36、现有定义int k=1;则执行语句while(++k<4);8、c语言程序设计自由度大,所以属于非结构化后,k的值为4 ~y。
语言。~n 37、程序 #include int main(){ int
9、C语言属于高级语言,不允许直接访问物理地i=0,j=10,k=2,s=0;for(; ;){ i+=k;if(i>j){pri
址。~n ntf("%d",s);break;}s+=i;}}中,判断i>j共执行10、函数是C程序的主要组成部分。~y 了6次。~y
11、若使用TC2.0编译器,则编译系统分配给int、38、int s=36;while(s) --s;构成的是死循环。~n char、float分别为2、1、4个字节~y 39、程序段
12、下列是合法的变量名:day、sum、_pint int=0;while(t=1){printf("%d\n",t);}在运行~y 时,printf语句的执行次数是0次。~n 13、若定义char c;则c="c";~n 40、程序 #include int main() {i+nt
14、C语言可以使用一个符号名称代表一个常量 x=23;。do {printf("%d",x--); while(!x); }运~y 行时的输出结果是23 ~y 15、如下程序段float x=3.6;int i;i=(int)x;则41、在定义数组时,数组下标可以用变量表示~n x=3,i=3 ~n 42、在引用数组中的元素时,数组下标可以用变量16、在C语言中字符型数据可以和整型数据进行算表示~y
术运算 ~y 43、int a[8];定义了一个整型数组,数组中的最17、使用scanf输入数据时可以规定其精度 后一个元素是a[8]~n
~n 44、int a[6];定义了一个整型数组,数组中的第18、C语言中的(++,--)运算符只能用于变量 一个元素是a[1] ~n ~y 45、int a[2][3];定义了一个数组,该数组中共19、C语言中float a=b=c=1.0是正确的 ~n 有6个元素~y
20、putchar(c)中c可以是转义字符 ~y 46、假设s[10]是一个字符数组,通过21、if语句无论写在几行上,都是一个整体,属scanf("%d",s);可以输入一个字符串给该数组 于同一个语句。~y ~y
22、整个if语句可以写在多行上,也可以写在一47、int a[6]={0};定义了一个数组a,并且该数组行上。~y 中每个元素的初值均为0 ~y 23、在if语句中,有if必须有else。~n 48、int a[2][3]={{1},{2},{3}};是正确的数组赋24、在if语句中,有else必须有if。~y 初值的方法~y
25、else子句不能作为语句单独使用,必须与if49、比较两个字符串的大小,可以用strcpy函数 配对使用。~y ~n
26、C语言编译系统在表示逻辑运算结果时,以数50、连接两个字符串,可以用strcat函数~y 值1代表“真”,以0代表“假”。~y 51、测试一个字符串的长度,可以使用strlen函
30
数~y putchar(getchar( ));语句是错误(正确)的。 52、如果被调用函数的定义出现在主调函数之前,~n
可以不必加以声明。 ~y 72、所谓数组元素的指针就是指数组元素的地址。 53、C语言不能嵌套定义函数,也不可以嵌套调用~y
函数,也就是说,在调用一个函数的过程中,不可73、交换两个指针变量p1和p2的程序是 temp=*p1; 以调用另一个函数~n *p1=*p2; *p2=temp; ~n 54、主函数中定义的变量也只在主函数中有效,而74、printf("%d",a[i])与printf("%d",*(a+i))不因为在主函数中定义而在整个文件或程序中有语句起到的作用相同,前者执行的效率高。~n 效。主函数也不能使用其他函数中定义的变量。 75、作形参的数组名不是一个国定的地址,而是按~y 指针变量处理。~y
55、不同函数中可以使用相同名字的变量,它们代76、定义指向函数的指针的格式是 int 表不同的对象,互不干扰。~y *p(int,int);。~n
56、在一个函数内部,可以在复合语句中定义变量,77、程序段 int *p,a=2; p=&a; 这些变量只在本复合语句中有效,这种复合语句也printf("%d",*(p++)); 的输出结果是2 ~y。 称为“分程序”或“程序块”。 ~y 78、C99中可定义基类型为void的指针变量,这57、函数内定义的变量是外部变量,而在函数之外是能指向任何类型的变量。~n 定义的变量称为局部变量,外部变量是全局变量79、将p指向字符串"China"的程序段是 char *p; (也称全程变量)。 ~n p= "China";~y
58、局部变量可以为本文件中其他函数所共用。它80、程序段 int a, m=4, n=6, *p1=&m, *p2=&n;
的有效范围为从定义变量的位置开始到本源文件a=(*p1),(*p2)+5; 执行后a的值为5 ~y 结束。~n 91、程序void f(int *n){ while( (*n)--);
59、从变量值存在的时间角度来分,又可以分为静printf(“%d”,++(*n)); } main() { int a=1;
态存储方式和动态存储方式。~y f(&a); } 没有输出结果~n
60、所谓动态存储方式是指在程序运行期间由系统92、C语言允许用户自己建立由不同类型数据组成分配固定的存储空间的方式。~n 的组合型的数据结构,它称为结构体。~y 61、静态存储方式则是在程序运行期间根据需要进93、结构体类型的名字就是结构体的名字。~n 行动态的分配存储空间的方式。~n 94、在定义结构体时,成员的类型必须指定,既可62、C语言中,如果用指针变量作实参调用函数,以是简单的数据类型,还可以是构造的数据类型。 先使指针变量有确定值,指向一个已定义的单元。 ~y
~y 95、若程序中含有结构体类型,则结构体成员的名63、C语言中,函数的调用只可以得到一个返回值,字不能与程序中的变量名相同。~n 而运用指针作函数参数可以得到多个变化的值。 96、对结构体变量的成员可以像普通变量一样进行~y 各种运算。~y
64、C语言中,用输入输出语句来输入输出数据。 97、结构体数组中每个数组元素都是类型相同的结~n 构体,可以对每个数组元素整体进行输入和输出的65、使用putchar函数时,必须在之前包含头文件操作。~n
stdio.h。~y 98、文件标识包含三部分内容,即文件路径、文件66、使用putchar函数可以向终端输出一个字符名主干和文件后缀。文件名主干的命名规则遵循标串。 ~n 识符的命名规则,后缀用来表示文件的性质,由367、使用printf函数可以按一定位数输出。 个字母构成。~n
~y 99、根据数据的组织形式,数据文件分为ASC||文68、printf函数中,,c和,s都可以输出字符串。 件(文本文件)和二进制文件(映像文件),ASC||文~n 件比二进制文件节省存储空间。~n 69、用scanf函数向已定义的变量中输入数据时,100、在缓冲文件系统中,每一个使用中的文件都在变量名前面必须加,。~y 在内存有一个对应的文件信息区,和该文件关联的70、用scanf函数向已定义的变量中输入数据时,文件指针指向它的文件信息区的同时也指向外部当遇非法输入时,该数据输入结束。 ~y 介质上的数据文件。~n
71、有关输入输出函数的使用,101、文件型数据的指针变量是一个指向名为FILE
31
的结构体的指针。~y
102以'w'的方式打开一个文件,若该文件已经存在,系统在打开该文件的同时将文件的内容清空,等待新数据的写入。
~y
32
本文档为【C语言题库+判断题】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。