C程序练习题.docx
《C程序练习题.docx》由会员分享,可在线阅读,更多相关《C程序练习题.docx(8页珍藏版)》请在冰豆网上搜索。
![C程序练习题.docx](https://file1.bdocx.com/fileroot1/2022-12/8/cfd15876-706e-4a48-ae5f-9d1228fc5465/cfd15876-706e-4a48-ae5f-9d1228fc54651.gif)
C程序练习题
C程序练习题
一、选择题
1.下列合法的标识符是
(1)。
(A)B.C.Tom(B)3a6b(C)_6a7h(D)$abc
2.以下程序的输出结果是
(2)。
main()
{inti=0,j=0,k=6;
if((++i>0)||(++j>0))k++;
printf(“%d,%d,%d\n”,i,j,k);}
(A)0,0,6(B)1,0,7(C)1,1,7(D)0,1,7
3.下列不正确的转义字符是(3)。
(A)‘\\’(B)‘\’’(C)‘074’(D)‘\0’
4.在C语言中,合法的字符常量是(4)。
(A)‘\086’(B)‘\x6a’(C)‘ab’(D)“\0”
5.已知字母A的ASCII码为65,以下程序段的输出结果是( 5 )。
Charc1=‘A’,c2=‘Y’;
Printf(“%d,%d”,c1,c2);
(A)65,90(B)A,Y(C)65,89(D)输出格式不合法
6.设有如下定义:
intx=10,y=3;
则语句 printf(“%d\n”,(x%y,x/y));的输出结果是( 6 )。
(A)1(B)0(C)4(D)3
7.以下语句的输出结果是(7)。
inti=3,j=2,a;
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
main()
{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:
ca:
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以下程序计算数的阶乘
main()
{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
main()
{charstr[N][81],*sp;
inti;
for(i=0;isp=str[0];答案:
(1)str[i]
for(i=1;i(2)strcpy(sp,str[i]);
if(strlen(sp)printf(“thelargeststringis:
%s\n”,7);
printf(“thelengthis:
%d\n”,strlen(sp));
}
4.输入一行字符,分别统计其中英文字母和数字的个数
#include
main()
{charc;
intletter=0,digit=0;
printf("请输入字符串:
\n");
while((c=getchar())!
=8)
{if(c>='a'&&c<='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;i<=5;i++)
{printf(“%d\n”,*p);p++;}
}
2.
main()
{inti,j,a[10];
a[0]=1;
for(i=0;i<5;i++)
for(j=i;j<5;j++)答案:
46810
a[j]=a[i]+1;
for(i=1;i<5;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);
}答案:
0
5.#include
main()
{char*p="abcde";
inti;
for(i=1;i<4;i++)
putchar(p[i]);
}答案:
bcd
六、编写程序
1.不用字符串拷贝函数,把字符串“china”,逆序拷贝到另一数组当中并输出,用函数实现。
2.已知一矩阵,找出每一行中最大元素并求和。
61930
4376
18829
习题1//23
#include
voidmain()
{
intm,t=0;
for(m=10;m<15;m++)
{
switch(m%5)
{
default:
t++;
case0:
t++;continue;
case1:
t++;break;
case2:
t++;
}
printf("%d",t);
}
}
习题2//1357
#include
voidmain()
{
intm,t=0;
for(m=10;m<15;m++)
{
switch(m%5)
{
default:
t++;
case0:
t++;break;
case1:
t++;continue;
case2:
t++;
}
printf("%d",t);
}
}