C程序习题集Word格式文档下载.docx
- 文档编号:20697565
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:64
- 大小:69.50KB
C程序习题集Word格式文档下载.docx
《C程序习题集Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C程序习题集Word格式文档下载.docx(64页珍藏版)》请在冰豆网上搜索。
=x||x<
=3②(x<
=-1)&
(1<
=3)
③x<
=-1||x>
=1&
x<
=3④!
(-1<
1)||!
(x>
3)
11、已知字母A的ASCII码为65,以下程序段的输出结果是()
charc1=’A’,c2=’Y’;
printf(″%d,%d″,c1,c2);
①65,90②A,Y③65,89④输出格式不合法
12、执行以下语句后b的值为()。
inta=5,b=6,w=1,x=2,y=3,z=4;
(a=w>
x)&
(b=y>
z);
①6②0③1④4
13、以下能正确地定义整型变量a,b和c并为其赋初值5的语句是()。
①inta=b=c=5;
②inta,b,c=5;
③inta=5,b=5,c=5;
④a=b=c=5;
14、设变量a是整型,f是实型,i是双精度型,则表达式10+′a′+i*f值的数据类型为()。
①int②float③double④不确定
15、以下程序的运行结果是()
main()
{intm=5;
if(m++>
5)printf(“%d\n”,m);
elseprintf(“%d\n”,m--);
}
①4②5③6④7
16、为了避免在嵌套的条件语句if---else中产生二义性,C语言规定:
else子句总是与()配对。
①缩排位置相同的if②其之前最近的if
③其之后最近的if④同一行上的if
17、以下不正确的语句是()。
①if(x>
y);
②if(x=y)&
(x!
=0)x+=y;
③if(x!
=y)scanf(“%d”,&
x);
elsescanf(“%d”,&
y);
④if(x<
y){x++;
y++;
18、C语言中while与do---while语句的主要区别是()
①do---while的循环体至少无条件执行一次
②do---while允许从外部转到循环体内
③do---while的循环体不能是复合语句
④while的循环控制条件比do---while的循环控制条件严格
19、以下程序段()
x=-1;
do
{x=x*x;
}
while(!
x);
①是死循环②循环执行两次③循环执行一次④有语法错误
20、以下的for循环
for(x=0,y=0;
(y!
=123)&
(x<
4);
x++);
①执行3次②执行4次③循环次数不定④是无限循环
21、执行下面语句后,变量I的值是()。
for(I=1;
I++<
4;
);
①3②4③5④不定
22、设x和y均为int型变量,则执行下面循环后,y的值为()。
for(y=1,x=1;
y<
=50;
y++)
{if(x==10)break;
if(x%2==1)
{x+=5;
continue;
x-=3;
①2②4③6④8
23、若运行时给变量x输入12,则以下程序的运行结果是()。
main()
{intx,y;
scanf(“%d“,&
y=x>
12?
x+10:
x–12;
printf(“%d\n”,y);
①0②22③12④10
24、以下正确的函数定义形式是()。
①doublefun(intx,inty)②doublefun(intx;
inty)
③doublefun(intx,inty);
④doublefun(intx,y);
25、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是()。
①float②int③long④double
26、以下对一维整型数组a的正确说明是()。
①inta(10);
②intn=10,a[n];
③intn;
④#defineSIZE10
scanf(“%d”,&
n);
inta[SIZE];
inta[n];
27、若有说明:
inta[10];
则对a数组元素的正确引用是()。
①a[10]②a[3.5]③a(5)④a[10-10]
28、以下能对二维数组a进行正确初始化的语句是()。
①inta[2][]={{1,0,1},{5,2,3}};
②inta[][3]={{1,2,3},{4,5,6}};
③inta[2][4]={{1,2,3},{4,5},{6}};
④inta[][3]={{1,0,1}{},{1,1}};
29、对两个数组a和b进行如下初始化:
chara[]=“ABCDEF”;
charb[]={‘A’,’B’,’C’,’D’,’E’,’F’};
则以下叙述正确的是()。
①a与b数组完全相同②a与b长度相同
③a和b中都存放字符串④a数组比b数组长度长
30、有两个字符数组a、b,则以下正确的输入语句是()。
①gets(a,b);
②scanf(“%s%s”,a,b);
③scanf(“%s%s”,&
a,&
b);
④gets(“a”),gets(“b”);
31、变量的指针,其含义是指该变量的()。
①值②地址③名④一个标志
32、若需要建立如图所示的存储结构,且已有说明float*p,m=3.14;
则正确的赋值语句是()。
pm
①p=m;
②p=&
m;
③*p=m;
④*p=&
33、下面程序段的运行结果是()。
char*s=“abcde”;
s+=2;
printf(“%d”,s);
①cde②字符’c’③字符’c’的地址④无确定的输出结果
34、若有以下定义,则对a数组元素地址的正确引用是()。
inta[5],*p=a;
①p+5②*a+1③&
a+1④&
a[0]
35、chara[]=“language”,*p;
p=a;
while(*p!
=‘u’){printf(“%c”,*p–32);
p++;
①LANGUAGE②language③LANG④langUAGE
二、填空题
1、设C语言中,一个int型数据在内存中占2个字节,则int型数据的取值范围为。
2、逗号表达式(a=3*5,a*4),a+15的值为,a的值为。
3、C程序中,每条语句都以结尾。
4、数学表达式:
的C语言表达式为:
;
数学表达式:
-
的C语言表达式为:
。
5、设x的值为15,n的值为2,则表达式x%=(n+=3)运算后x的值是。
6、利用条件运算符将这两条语句“if(a>
b)m=a;
elsem=b;
”转换成与其等价的一条语句是:
7、设y为int型变量,请写出描述“y是奇数”的逻辑表达式。
8、若a=5,b=2,c=1,则表达式a–b<
c||b==c的值是。
9、若有定义:
inta[3][4]={{1,2},{0},{4,6,8,10}};
则初始化后,a[1][2]得到的初值是,a[2][1]得到的初值是。
10、若自定义函数要求返回一个值,则应在该函数体中有一条语句。
三、判断题(正确的打“√”,错误的打“×
”)
1、若有常量定义:
#defineN1,则语句:
N++;
是合法的C语句。
()
2、实际上,可以用顺序,分支,循环三种结构构造任何算法.()
3、有字符串常量〃ab123〃,则该字符串在内存中要占用5个字节的单元。
()
4、goto语句可以构成循环。
5、有数组:
inta[5]={1,2,3,4,5};
则输出数组5个元素可用printf(”%d”,a[5]);
()。
6、标识符AP与标识符ap在C语言中代表同一变量。
7、若有变量定义:
inta[5],*p,I;
则语句:
for(I=1;
I<
6;
I++)scanf(”%d”,p++);
可实现给数组a正确赋值。
8、continue语句与break语句功能一样,都是退出循环体。
9、switch选择结构中必须有default子句。
10、数组的下标可以是float数据类型。
四、仔细阅读如下程序,按题意填写程序空缺
1、输入一个字符,如果它是一个大写字母,则把它变成小写字母;
如果它是一个小写字母,则把它变成大写字母;
其它字符不变。
{charch;
scanf(“%c“,&
ch);
if()ch=ch+32;
elseif(ch>
=‘a’&
ch<
=‘z’);
printf(“%c”,ch);
2、下面程序的功能是打印100以内个位数为6且能被3整除的所有数。
#include<
stdio.h>
main()
{inti,j;
for(i=0;
;
i++)
{j=i*10+6;
if()continue;
printf(“%d“,j);
3、输入三个数求最大者。
intmax(intx,inty)
{;
if(x<
y)
Max=y;
else
Max=x;
return();
{inta,b,c,d;
scanf(“%d,%d,%d”,&
a,&
b,&
c);
d=max(a,);
printf(“%d“,d);
4、下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中,分别输出数组a、b。
main()
{inta[2][3]={{1,2,3},{4,5,6}};
intb[3][2],i,j;
printf(“arraya:
\n”);
for(i=0;
i<
=1;
i++)
{for(j=0;
;
j++)
{printf(“%5d”,a[i][j]);
printf(“\n”);
printf(“arrayb:
for(i=0;
j<
=1;
j++)
printf(“%5d”,b[i][j]);
五、仔细阅读如下程序,写出运行结果或其实现的功能
{intI;
for(I=0;
I<
3;
I++)
switch(I)
{case0:
printf(“0*”);
case1:
printf(“1*\n”);
break;
case2:
printf(“2*\n”);
default:
printf(“3*\n”);
运行结果:
2、inta=3,b=5;
max(inta,intb)
{intc;
c=a>
b?
a:
b;
return(c);
{inta=9;
printf(“%d”,max(a,b));
1、
3、main()
{inti,max,a[10];
printf("
input10numbers:
\n"
);
for(i=0;
i<
10;
i++)
scanf("
%d"
&
a[i]);
max=a[0];
for(i=1;
if(a[i]>
max)max=a[i];
maxmum=%d\n"
max);
该程序的功能是:
六、编程题
1、由键盘输入3个整数a、b、c,然后按由小到大顺序输出。
2、计算1!
+2!
+3!
+…+10!
的值。
3、求数组:
a[2][3]={1,2,3,4,5,6}的转置(即数组a的行列互换后的元素值)。
《程序设计基础》习题集2
一、单选题
1.在C语言中,合法的字符常数是()
A)‘程序设计’B)“程序设计”
C)cD)‘\\’
2.在C语言中,以下不正确的八进制或不正确的十六进制数是()
A)090B)0xAB
C)0xlaD)-016
3.执行intx=2,y=3;
后表达式x=(y==3)的值是()
A)0B)1
C)2D)3
4.在循环结构的循环体中执行break语句,其作用是()
A)结束本次循环,进行下次循环
B)继续执行break语句之后的循环体中各语句
C)跳出该循环体,提前结束循环
D)终止程序运行
5.以下程序运行结果是()
main()
{chars[]=”\’Address\’”;
printf(%d\n”,strlen(s));
A)9B)10
C)11D)12
6.以下程序运行结果是()
{inta[]={2,4,6,8,10},y=1,x;
for(x=0;
x<
x++)y+=a[x+1];
printf(“%d\n”,y);
A)17B)18
C)19D)20
7.已定义charx[8];
inti;
为了给x数组赋值,以下正确的语句是()
A)x[8]=”TurboC”;
B)x=”TurboC”;
C)x[]=”TurboC”;
D)for(i=0;
i<
7;
i++)x[i]=getchar();
8.设inta[][4]={0,0};
则以下错误的描述是()
A)数组a的每个元素都可得到初值0
B)二维数组a的第一维大小为1
C)数组a的行数为1
D)只有元素a[0][0]和a[0][1]可得到初值0,其余元素得不到初值0
9.以下程序运行结果是()
fun3(intx)
{staticinta=3;
a+=x;
returna;
{intk=2,m=1,n;
n=fun3(k);
n=fun3(m);
printf(“%d\n”,n);
A)3B)4
C)6D)9
10.以下四个运算符,按优先级由高到低的排列顺序是()
A)++%+=>
B)%++>
+=
C)%+=>
++D)++%>
11.以下不正确的描述是()
A)在函数外部定义的变量是全局变量
B)在函数内部定义的变量是局部变量
C)函数的形参是局部变量
D)局部变量不能与全局变量同名
12.“文件包含”预处理语句的使用形式中,当#include后面的文件名用“”括起时,寻找被包含的文件的方式为()
A)直接按系统设定的标准方式搜索目录
B)先在源程序所在目录搜索,再按系统设定的标准方式搜索
C)仅仅搜索源程序所在的目录
D)仅仅搜索当前目录
13.C语言的简单数据类型包括()
A)整型、实型、逻辑型B)整型、实型、字符型、逻辑型
C)整型、字符型、逻辑型D)整型、实型、字符型
14.下列各变量均为整型,选项中不正确的C语言赋值语句是()
A)i+=++i;
B)i=j==k;
C)i=j+=i;
D)i=j+1=k;
15.数学关系式x≤y≤z可用C语言的表达式表示为()
A)(x<
=y)&
(y<
=z)B)(x<
=y)and(y<
=z)
C)(x<
=y<
=z)D)(x<
z)
16.要使以下程序的输出结果为4,则a和b应满足的条件是()
main()
{ints,t,a,b;
scanf(“%d%d”,&
b);
s=t=1;
if(a>
0)s+=1;
b)t=s+t;
else
if(a==b)t=5;
elset=2*s;
printf(“%d\n”,t);
A)a>
0并且a<
bB)a<
b
C)a>
0并且a>
bD)a<
b
17.下面程序的输出结果为()
{inti;
for(i=100;
200;
{
if(i%5==0)continue;
printf(“%d\n”,i);
break;
A)100B)101
C)无限循环D)无输出结果
18.下列程序段的运行结果是()
inti=1,a[]={1,5,10,9,13,7};
while(a[i]<
=10)a[i++]+=2;
for(i=0;
i++)printf(“%d”,a[i]);
A)271211139B)171211137
C)171211139D)17129137
19.以下语句把字符串“abcde”赋初值给字符数组,不正确的语句是()
A)chars[]=“abcde”;
B)chars[]={’a’,’b’,’c’,’d’,’e’,’\0’};
C)chars[]={“abcde”};
D)chars[5]=“abcde”;
20.下面程序段的运行结果是()
inta[2][3]={1,2,3},i,j;
2;
for(j=0;
j<
j++)
{a[i][j]=a[i*j%2][j]+a[i][(i+j)%3];
printf(“%d,”,a[i][j]);
A)2,4,6,2,0,8,B)1,2,3,0,0,0,
C)1,2,3,2,0,6,D)2,4,6,2,0,6,
二、填空题
1.以下程序的功能是:
从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入,请填空。
{floatx,amax,amin;
scanf(“%f”,&
amax=x;
amin=x;
while(【1】)
{if(x>
amax)amax=x;
if(【2】)amin=x;
printf(“\namax=%f\namin=%f\n”,amax,amin);
2.Fibonacci数列中的头两个数是1和1,从第三个数开始,每个数等于前两个数之和。
下述程序计算此数列的前20个数,且每行输出5个数,请填空。
#include<
voidmain()
{intf,f1=1,f2=1;
printf(“%6d,%6d”,f1,f2);
for(i=3;
=20;
{f=【3】
printf(“%6d”,f);
if(【4】)
printf(“\n”);
f1=f2;
【5】
3.下面程序的功能是将两个字符串连接起来,请填空。
{chars1[80],s2[40];
inti=0,j=0;
printf(“\nInputstring1:
”);
scanf(“%s”,s1);
printf(“Inputstring2:
scanf(“%s”,s2);
while(s1[i]!
=‘\0’)
i++;
while(s2[j]!
【6】;
【7】=‘\0’;
printf(“%s\n”,s1);
4.计算1+1/2+1/4+…+1/50的值,并显示出来。
{inti=2;
floatsum=1.0;
while(i<
=【8】)
{sum+=1/【9】;
i+=2;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序 习题集