C程序练习题Word文档格式.docx
《C程序练习题Word文档格式.docx》由会员分享,可在线阅读,更多相关《C程序练习题Word文档格式.docx(8页珍藏版)》请在冰豆网上搜索。
printf(“%d”,(--i==j++)?
--i:
++j);
(A)2(B)1(C)3(D)4
8.设a,b,c均为整型,且b=c=5,执行以下语句后,a的值为(8)。
a=2+(c+=b++,c+8,++c);
(A)13(B)14(C)20(D)21
9.若有定义:
inti=7;
floatx=1.5,y=5.7;
则表达式x+i%3*(int)(x+y)%4/2的值是(9)。
(A)2.500000(B)3.000000(C)3.500000(D)0.000000
10.设有语句inta=3;
则执行了语句a+=a-=a*a;
后,变量a的值是(10)。
A)3B)0C)9D)-12
11..以下程序的输出结果是(11)。
#include<
stdio.h>
{inta=2,c=5;
printf("
a=%%d,b=%%d\n"
a,c);
A)a=%2,b=%5B)a=2,b=5C)a=%%d,b=%%dD)a=%d,b=%d
12.请选出合法的C语言赋值语句(12)
A)a=b=58B)i++;
C)a=58,b=58D)k=int(a+b);
13.请选出以下语句的输出结果(13)
printf("
%d\n"
strlen("
\t\"
\065\xff\n"
));
A)5B)14C)8D)输出项不合法,无正常输出
14.设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>
b)&
&
(n=c>
b)
后n的值为(14)
A)1B)2C)3D)4
15、C语言规定:
在一个源程序中,main函数的位置(15)。
(A)必须在最开始(B)必须在系统调用的库函数的后面
(C)可以任意(D)必须在最后
16.若有以下程序片段:
charstr[]="
ab\n\082\\\"
"
;
printf(“%d”,strlen(str));
上面程序片段的输出结果是(16)
A)3B)4C)6D)12
17.若有说明:
inta[10];
则对a数组的数组元素的正确引用是(17)。
(A)a[10](B)a[4.5](C)a(6)(D)a[0]
18.设a=1,b=2,c=3,d=4,则表达式:
a>
b?
a:
c<
d?
d的结果为(18)
A)4B)3C)2D)1
19.标有/**/的语句的执行次数是(19)
inty,i;
for(i=0;
i<
20;
i++)
{if(i%2==0)continue;
y+=i;
/**/
}
A)20B)19C)10D)9
20.下列数组说明中正确的是(20)
A)intarray[][4]B)intarray[]C)intarray[3][]D)intarray[3][4]
二、填空题
1、对于C的源程序(*.c)要经过
(1)步骤生成目标程序(*.obj)。
2、在C语言中,一个函数由
(2)和(3)构成。
3.字符串“as\n\\\r”在内存中占的字节数为(4),此字符串的长度为(5)。
4、下面程序段中,输出结果为(6)。
inta[5]={1,2,3,4,5},*p=&
a[2];
printf(“%d”,*p++);
5、为表示关系x≥y≥z,应使用C语言表达式(7)。
6、C语言规定字符串的结束标志是(8)。
7、若用数组名作为函数调用的实参,传递给形参的是(9)
8、下面程序段中的循环执行次数为(10)。
intx=10;
while(x)x=x/2;
三、判断题
1.一个C程序总是从main函数开始执行的。
2.变量在使用前无需定义。
3.在C语言中,函数的调用可以嵌套。
4."
a"
是字符常量。
5.在C语言中,运算符%的两侧必须都是整数。
6.若定义数组inta[5];
,则数组a包含5个元素,分别是a[1],a[2],a[3],a[4],a[5]。
7.下面语句行能正确对二维数组a进行初始化。
inta[][3]={{1,2,3},{4,5,6},{7,8,9}};
8.函数的形参属于全局变量。
9.指针变量必须先赋值后使用。
10.判断两整型变量x和y是否相等的关系表达式为:
x=y
四、程序填空题
1以下程序计算数的阶乘
{inti,n;
longnp;
scanf(“%d”,&
n);
np=1答案:
(1)i=n;
for(;
2;
)
(2)--i
np*=i;
printf(“n=%dn!
=%ld\n”,n,np);
2.计算1—100整数累加和。
main()
{inti,sum=3答案:
(1)0;
i=1;
(2);
i<
=100;
for(4)
{sum+=i;
i++;
3.从输入的10个字符串中找出最长的那个串。
#include<
#defineN10
{charstr[N][81],*sp;
inti;
for(i=0;
N;
i++)gets(5);
sp=str[0];
答案:
(1)str[i]
for(i=1;
i++)
(2)strcpy(sp,str[i]);
if(strlen(sp)<
strlen(str[i]))(6)(3)sp
printf(“thelargeststringis:
%s\n”,7);
printf(“thelengthis:
%d\n”,strlen(sp));
4.输入一行字符,分别统计其中英文字母和数字的个数
main()
{charc;
intletter=0,digit=0;
请输入字符串:
\n"
);
while((c=getchar())!
=8)
{if(c>
='
a'
z'
||9)
letter++;
elseif(c>
0'
10)
digit++;
}
五、阅读程序写结果
1.
main()答案:
1
2
{inti,*p;
3
b[6]={1,2,3,4,5,6};
4
p=&
b[0];
5
for(i=1;
=5;
i++)
{printf(“%d\n”,*p);
p++;
2.
{inti,j,a[10];
a[0]=1;
for(i=0;
5;
for(j=i;
j<
j++)答案:
46810
a[j]=a[i]+1;
i++)
printf(“%4d”,a[i]);
3.main()
{inti=5;
do
{
if(i%2)
{i--;
continue;
i--;
else{i--;
break;
}
3
printf(“i=%d\n”,i);
}while(i>
0);
printf(“%d”,i);
4.main()
{intn=0;
while(n=0)n++;
printf(“%d”,n);
}答案:
5.#include<
{char*p="
abcde"
inti;
for(i=1;
4;
putchar(p[i]);
}答案:
bcd
六、编写程序
1.不用字符串拷贝函数,把字符串“china”,逆序拷贝到另一数组当中并输出,用函数实现。
2.已知一矩阵,找出每一行中最大元素并求和。
61930
4376
18829
习题1//23
voidmain()
intm,t=0;
for(m=10;
m<
15;
m++)
{
switch(m%5)
default:
t++;
case0:
continue;
case1:
break;
case2:
%d"
t);
习题2//1357