完整版C语言程序设计练习及答案.docx
《完整版C语言程序设计练习及答案.docx》由会员分享,可在线阅读,更多相关《完整版C语言程序设计练习及答案.docx(37页珍藏版)》请在冰点文库上搜索。
完整版C语言程序设计练习及答案
《C语言程序设计》练习及答案
得分评卷人复查人
一、单选题,每小题1分,共60分(将正确答案的序号写在题目的括号中)。
1、结构化程序设计的三种基本控制结构是(D)。
A、主程序、子程序、函数B、输入、处理、输出
C、调用,返回,转移D、顺序、选择、循环
2、下列关于C程序变量的叙述,(D)是错误的。
A、变量名必须由字母或下划线开头。
B、程序中的变量必须在被使用之前定义。
C、不同的基本类型的变量之间可以混合运算。
D、变量的数据类型决定变量的"作用域"。
3、能将C语言编写的源程序转换为目标程序的软件是(C)。
A、编辑程序B、汇编程序
C、编译程序D、解释程序
4、以下符号中,合法的用户标识符是(D)。
A、-pB、int
C、3abD、_xt_
5、以下选项中,与m=n++完全等价的表达式是(C)。
A、m=++nB、m+=n+1
C、m=n,n=n+1D、n=n+1,m=n
6、若有定义:
intaa[8];。
则以下表达式中不能代表数组元aa[1]的地址的是(C)。
A、&aa[0]+1B、&aa[1]
C、&aa[0]++D、aa+1
7、表达式!
5&(7+3)&&(4+5)的值是(A)。
A、0B、1
C、5D、9
8、以下选项中非法的C语言表达式是(A)。
A、x+1=x+1B、0<=x<100
C、i=j==0D、(char)(65+3)
9、在TURBOC中,int类型变量所占字节数是(B)。
A、1B、2
C、4D、8
10、C语言中基本的数据类型包括(B)。
A、整型,实型,逻辑型B、整型,实型,字符型
C、整型,字符型,逻辑型D、整型,实型,逻辑型,字符型
11、设有变量定义如下:
charch;inti;floatf;
表达式ch/i+i﹡f+1.234的结果的数据类型是(D)。
A、floatB、char
C、intD、double
12、C语言中前后运算对象都必须是整型的运算符是(A)。
A、%B、/
C、++D、!
13、已定义c为字符型变量,则下列语句中正确的是( A)。
A、c=98;B、c=’98’;
C、c=”98”D、c=”b”
14、以下实型常量中,符合C语言语法的是(A)。
A、.5E-3B、1.2E0.5
C、E15D、3.14.159E
15、以下4个选项中,不能看作一条语句的是(C)。
A、if(a>0);B、{;}
C、if(b==0)m=1;n=2;D、a=0,b=0,c=0;
16、要用C语言表示数学关系式a≥b≥c,正确的表达式是(D )。
A、a>=b>=cB、(a>=b)&(b>=c)
C、(a>=b)||(b>=c)D、(a>=b)&&(b>=c)
17、设i,j,k均为整型变量,则执行以下for语句后,k的值是(C)。
For(i=0,j=10;i<=j;i++,j--)k=i+j;
A、0B、5
C、10D、20
18、若表达式!
x的值为1,则下列表达式(A)的值为1。
A、x==0B、x==1
C、x!
=1D、x!
=0
19、已知整型变量a=13,b=16,则a&b的值为(A)。
A、0B、-3
C、1D、3
20、在一个表达式中含下列运算符,优先级最高的是(B)。
A、赋值运算符B、算术运算符
C、条件运算符D、关系运算符
21、下列语句组中,正确的是(C)。
A、char*s;s={"Beijing"};B、chars[8];s={"Beijing"};
C、char*s;s="Beijing";D、chars[8];s="Beijing";
22、下述对C语言字符数组的描述中错误的是(C)。
A、字符数组可以存放字符串
B、字符数组中的字符串可以整体输入、输出
C、可在赋值语句中通过赋值运算符“=”对字符数组整体赋值
D、不可用关系运算符对字符数组中的字符串进行比较
23、凡在函数中未指定存储类别的变量,其隐含的存储类别为(A)。
A、autoB、extern
C、registerD、static
24、在函数调用语句中的____的个数、类型和次序应与函数定义的____相一致。
(D)
A、值,变量B、变量,值
C、形参,实参D、实参,形参
25、若有定义int(*p)[3]和int(*f)(),则p和f分别表示(D)。
A、指针数组,函数指针B、数组指针,指针函数
C、指针数组,指针函数D、数组指针,函数指针
26、在说明语句:
int*f();中,标识符f代表的是(C)。
A、一个用于指向一维数组的指针变量
B、一个用于指向整型数据的指针变量
C、一个返回值为指针型的函数名
D、一个用于指向函数的指针变量
27、使用结构体struct的目的是(A)。
A、将一组相关的数据作为一个整体,以便程序使用
B、将一组相同数据类型的数据作为一个整体,以便程序使用
C、将一组数据作为一个整体,以便其中的成员共享同一存储空间
D、将一组数值一一列写出来,变量的值只限于列举的数值的范围内
28、设有说明语句
typedefstruct
{intn;
charch[8];
}PER;
则下面叙述中正确的是(A)。
A、PER是结构体类型名B、PER是结构体变量名
C、struct是结构体类型名D、struct是结构体变量名
29、设有定义:
inta,*pa=&a;以下scanf语句中能正确为变量a读入数据的是(B)。
A、scanf(“%d”,a);B、scanf(“%d”,pa);
C、scanf(“%d”,*pa);D、scanf(“%d”,&pa);
30、若要打开D盘上user文件夹下名为abc.txt的文本文件进行读、写操作,符合此要求的函数调用是(C)
A、fopen("D:
\\user\\abc.txt","r")B、fopen("D:
\user\abc.txt","w")
C、fopen("D:
\\user\\abc.txt","r+")D、fopen("D:
\user\abc.txt","rb")
31、下列语句中,能正确进行字符串赋值或赋初值的是(AD)。
A、chara[5]={‘h’,‘e’,‘l’,‘l’,‘o’};
B、chars[5]=“hello”;
C、chars[5];s=“hell”;
D、char*s;s=“hello”;
32、下列语句中,能正确定义一维数组的是(B)。
A、intN=10;
intnum[N];B、#defineN10
intnum[N];
C、intnum[0..10];D、intnum[];
33、下列语句中,不能正确定义二维数组的是(A)。
A、inta[2][]={{1,2},{3,4}};B、inta[2][2]={{1},2,3};
C、inta[][2]={1,2,3,4};D、inta[2][2]={{1},{2}};
34、如有定义:
int*p[3];则下列叙述中正确的是(C)。
A、定义了一个可指向一维数组的指针变量p,所指一维数组应含有三个int类型元素
B、定义了一个名为*p的整型数组,该数组含有三个int类型元素
C、定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针
D、定义了一个基类型为int的指针变量p,该变量具有三个指针
35、有以下函数定义:
voidfun(intn,doublex){……}
若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是(A)。
A、fun(x,n);B、voidfun(n,x);
C、fun(inty,doublem);D、k=fun(10,12.5);
36、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是(D)。
A、函数调用可以出现在表达式中
B、函数调用可以作为独立的语句存在
C、函数调用可以作为一个函数的实参
D、函数调用可以作为一个函数的形参
37、若有下面的说明和定义
structtest
{intml;charm2;floatm3;
unionuu{charul[5];intu2[2];}ua;
}myaa;
则sizeof(structtest)的值是(B)。
A、9B、12
C、14D、16
38、若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为(B)。
A、-1B、0
C、1D、3
39、下列程序的输出结果为(C)。
#include
main()
{chara=‘a’,b;
printf(”%c,”,++a);
printf(”%c\n”,b=a++);}
A、a,bB、a,c
C、b,bD、b,c
40、下列程序的输出结果为(A)。
#include
#defineF(X,Y)X﹡Y
main()
{inta=3,b=4;
printf("%d\n",F(a++,b++));}
A、12B、16
C、20D、24
41、下列程序的输出结果为(D)。
#include
main()
{inta[][3]=1,2,3,4,5,6,7,8,9,10,11,12;
printf("%d",a[2][1]);}
A、2B、4
C、7D、8
42、设有说明语句:
inta=1,b=0;则执行以下语句后,输出结果为(A)。
switch(a)
{case1:
switch(b)
{case0:
printf("**0**");break;
case1:
printf("**1**");break;}
default:
printf("**2**");break;}
A、**0**B、**2**
C、**0**
**1**
**2**D、**0**
**2**
43、下列程序的输出结果为(B)。
main()
{charch1,ch2;
ch1=’A’+’5’-‘3’;
ch2=’A’+’5’-‘3’;
printf(“%d,%c\n”,ch1,ch2);}
A、67,67B、67,C
C、B,CD、C,C
44、下列程序的输出结果为(D)。
main()
{intx=10,y=10;
printf("%d,%d",x++,++y);}
A、10,10B、11,10
C、11,11D、10,11
45、下列程序的输出结果为(A)。
#defineSUM(x)x+x
main()
{inta=10,k=3,m=2;
a/=SUM(k*m)/SUM(m);
printf("%d",a);
}
A、0B、3
C、4D、6
46、下列程序的输出结果为(D)。
#include
main()
{
inti;
for(i=100;i++)
if(i%5==0)continue;
printf("%d",i);
break;
}
A、100B、101
C、无限循环D、程序错误
47、下列程序的输出结果为(B)。
main()
{intx=3,y=2,z=1;
printf("%d\n,x/y&~z);}
A、0B、1
C、2D、3
48、下列程序的输出结果为(A)。
#include
main()
{staticinta[]={1,3,5},b[]={2,6,10};
inti,s=0;
for(i=0;i<3;i++)s+=a[i]/b[i];
printf("%d",s);}
A、0B、1
C、1.5D、2
49、下列程序段的输出结果为(A)。
inta=4,b=3,c=2,d=1;
printf(“%d”,(a
a:
dd:
b));
A、1B、2
C、3D、4
50、下列程序段的输出结果为(B)。
intx=3;
do
{printf(“%d”,x-=2);
}while(!
(--x));
A、1B、1-2
C、30D、死循环
51、下列程序的输出结果为(D)。
main()
{inta[7]={1,2,3,4,5,6,7},*p=a;
printf(“%d\n”,*(p+3));}
A、1B、2
C、3D、4
52、下列程序的输出结果为(B)。
voidsub(intx,inty,int*z)
{*z=y-x;}
main()
{inta,b,c;
sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);
printf(“%d,%d,%d”,a,b,c);}
A、5,2,3B、-5,-12,-7
C、-5,-12,-17D、5,-2,-7
53、下列程序的输出结果为(C)。
main()
{inta[]={2,4,5,7,11,12},x,y=0,*p;
p=&a[1];
for(x=0;x<=3;x++)y+=*(p+x);
printf(“%d”,y);}
A、16B、18
C、27D、11
54、下列程序输入:
81635ac76201显示结果为(B)
#include
voidmain()
{inti;floatx;chars[10];
scanf("%3d%f%4s",&i,&x,s);
printf("%d%6.3f%s\n",i,x,s);}
A、81635.000acB、81635.000ac76
C、81635.0acD、81635.0ac76
55、下列程序的输出结果为(C)。
main()
{union
{longk;
inti[6];
charc[4];
}r;
printf("%d",sizeof(r));
}
A、4B、6
C、12D、20
56、下列程序的输出结果为(B)。
#include
main()
{
voidfunc();
structdate
{inta,b;
chars[5];
}arg;
arg.a=27;
arg.b=3;
strcpy(arg.s,"abcd");
func(arg.a,arg.b,arg.s);
printf("arg.a=%d,arg.b=%d,arg.s=%s,arg.a,arg.b,arg.s);
}
voidfunc(intx,inty,char*s1)
{
x-=5;
y+=10;
s1="ABCD";
}
A、arg.a=22,arg.b=13,arg.s=ABCD
B、arg.a=27,arg.b=3,arg.s=abcd
C、arg.a=22,arg.b=13,arg.s=abcd
D、arg.a=27,arg.b=3,arg.s=ABCD
57、下列程序的运行结果为(B)。
main()
{floaty=0.0,a[]={2.0,4.0,6.0,8.0,10.0},*p;
inti;
p=&a[1];
for(i=0;i<3;i++)y+=*(p+i);
printf("%f",y);
}
A、12.000000B、18.000000
C、20.000000D、24.000000
58、下列程序的运行结果为(B)。
#include
main()
{
charb[]="ABCDEFG";
char*chp=&b[6];
while(chp>&b[0])
{putchar(*chp);
--chp;}
putchar('');}
A、GFEDCBAB、GFEDCB
C、FEDCBD、FEDCBA
59、下列程序输出结果为(B)。
f()
{staticc=3;
return(c++);
}
main()
{inti,k;
for(i=0;i<2;i++)k=f();
printf("%d",k);
}
A、3B、4
C、5D、6
60、下列程序运算结果为(A)。
main()
{longn,d;
inti=0;
n=657354;
while(n!
=0)
{d=n%10;
printf("%d",d);
n/=10;
}
}
A、453756B、354657
C、657354D、756453
61、下列程序的输出结果为(B)。
#include
voidmain()
{inta=15,c=14;
printf("%d\n",(--a==c++)?
--a:
c++);
}
A、12B、13
C、14D、15
62、下列程序的输出结果为(A)。
intx,y;
change()
{x=x+y;
y=x-y;
x=x-y;
}
main()
{intx=7,y=5;
change();
printf("%d,%d",x,y);
}
A、7,5B、5,7
C、12,2D、2,12
63、下列程序的输出结果为(C)。
#include
voidmain()
{inta[][4]={{2,3,4,10},{5,6,7,10},{8,9,10,-999}};
int*pa;pa=a[1];
while(*pa!
=-999)
{printf("%d",*pa);
pa++;
}}
A、8910B、67108910
C、567108910D、3410567108910
64、下列程序的输出结果为(D)。
#include
voidmain()
{inti=0;
do{printf("%d",i);
if(i==5)break;
elsecontinue;
}while(++i<=9);
}
A、0123456789B、12345
C、123456789D、012345
65、下列程序的输出结果为(B)。
#include
voidmain()
{char*strarr[3]={"abcdefg","1234567","pqrst"};
charnewstr[10];
strcpy(newstr,strarr[1]+2);
printf("%s\n",newstr);}
A、bcdefgB、34567
C、rstD、234567
66、下列程序的输出结果为(C)。
#include
#definePI3.14
#defineAREA(x)PI*x*x
voidmain()
{floatradius=1.0,area;
area=AREA(radius+1);
printf("%5.2f\n",area);}
A、12.56B、6.28
C、5.14D、4.14
67、设有如下函数定义:
intmaxop(intm,intn)
{
if(m>n)returnmaxop(m-n,n);
if(mif(m==n)returnm;
}
如果执行printf("%d",maxop(85,51));则输出结果为(A)。
A、17B、34
C、51D、85
68、在C语言中,合法的长整型常数是:
()。
A)0LB)4962710
C)0.054838743D)2.1869e10
69、C语言中的函数()。
A)嵌套调用和递归调用均可B)嵌套定义和嵌套调用均可
C)可以嵌套定义但不可以嵌套调用D)可以嵌套调用但不可以递归调用
70、计算平方数时最不可能引起二义性的宏定义是:
()。
A)#defineSQR(x)x*xB)#defineSQR(x)(x*x)
C)#defineSQR(x)(x)*(x)D)#defineSQR(x)((x)*(x))
71、若有定义:
enumweekday{mon,tue,wed,thu,fri}workday;
则()是不正确的语句。
A)workday=(enumweekday)3;B)workday=(enumweekday)0;
C)workday=4;D)workday=fri;
72、若C程序中含有如下定义:
structst{intx;inty;}
structsts1,s2;
则()。
A)能编译、链接和运行B)编译时出错
C)能编译和链接,但不能运行D)能编译,但