C语言程序设计复习思考题.docx
- 文档编号:11357945
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:22
- 大小:22.29KB
C语言程序设计复习思考题.docx
《C语言程序设计复习思考题.docx》由会员分享,可在线阅读,更多相关《C语言程序设计复习思考题.docx(22页珍藏版)》请在冰豆网上搜索。
C语言程序设计复习思考题
《C语言程序设计》复习思考题
一、单选题
题干
答案
设有定义:
longx=-123456L;则以下能够正确输出变量x值的语句是_______。
A.printf(“x=%d\n”,x)
B.printf(“x=%ld\n”,x)
C.printf(“x=?
l\n”,x)
D.printf(“x=%LD\n”,x);
B
下列关于指针定义的描述,___________是错误的。
A.指针是一种变量,该变量用来存放某个变量的地址值的。
B.指针变量的类型与它所指向的变量类型一致。
C.指针变量的命名规则与标识符相同。
D.在定义指针时,标识符前的“*”号表示后面的指针变量所指向的内容。
D
执行下面的程序后,a的值是()。
#defineSQR(X)X*X
main()
{inta=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("%d\n",a);}
A.10
B.1
C.9
D.0
B
设intx=1,y=1;表达式(!
x++||y--)的值是_________
A.0
B.1
C.2
D.-1
B
main()
{intn;
(n=6*4,n+6),n*2;
printf(“n=%d\n”,n);
}此程序的输出结果是______________.
A.30
B.24
C.60
D.48
B
设A为存放基本整型的一维数组,如果A的首地址为P,那么A中第i个元素的地址为()。
A.P+i*2
B.P+(i-1)*2
C.P+(i-1)
D.P+i
B
若有如下定义,则__________是对数组元素的正确的引用。
inta[10],*p;
p=a;p=a;p=a;p=a;
A.*&a[10]
B.a[11]
C.*(p+10)
D.*p
D
设整型变量n的值为2,执行语句“n+=n-=n*n;”后,n的值是__________
A.0
B.4
C.-4
D.2
C
以下不能正确定义二维数组的语句是___________
A.inta[2][2]={{1},{2}};
B.inta[][2]={1,2,3,4};
C.inta[2][2]={{1},2,3};
D.inta[2][]={{1,2},{3,4}};
D
程序段___________的功能是将变量u、s中的最大值赋给变量t。
A.if(u>s)t=u;t=s;
B.t=u;if(t)t=s;
C.if(u>s)t=u;elset=s;
D.t=s;if(u)t=u;
C
下列程序段的输出结果是___________。
voidmain()
{intk;
for(k=1;k<5;k++〉
{if(k%2!
=0)
printf("#");
else
printf(“*”);}
}
A.#*#*
B.*#*#
C.##
D.以上都不对
A
设变量定义为inta[3]={1,4,7},*p=&a[2],则*p的值是。
A.&a[2]
B.4
C.7
D.1
C
下列程序执行后输出的结果是()。
intd=1;
fun(intp)
{intd=5;
d+=p++;
printf("%d,",d);}
main()
{inta=3;
fun(a);
d+=a++;
printf("%d\n",d);}
A.8,4
B.9,6
C.9,4
D.8,5
A
能正确表示a和b同时为正或同时为负的逻辑表达式是_________。
A.a>=0||b>=0)&&(a<0||b<0)
B.(a>=0&&b>=0)&&(a<0&&b<0)
C.(a+b>0)&&(a+b<=0)
D.a*b>0
D
表达式:
10!
=9的值是()。
A.true
B.非零值
C.0
D.1
D
C语言中,合法的字符型常数是_________。
A.‘A’
B.“A”
C.65
D.A
A
以下()属于C语言的数据类型。
A.复合型
B.双精度型
C.逻辑型
D.集合型
B
以下说法中正确的是()。
A.C语言程序总是从第一个的函数开始执行
B.在C语言程序中,要调用的函数必须在main()函数中定义
C.C语言程序总是从main()函数开始执行
D.C语言程序中的main()函数必须放在程序的开始部分
C
选出下列标识符中不是合法的标识符的是()。
A.hot_do
B.cat1
C._pri
D.2ab
D
下列描述中不正确的是()。
A、字符型数组中可能存放字符串。
B、可以对字符型数组进行整体输入、输出。
C、可以对整型数组进行整体输入、输出。
D、不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。
C
若已定义:
inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式为()。
A.p+1
B.a+1
C.a++
D.++p
C
设有如下定义:
intx=10,y=3,z;
则语句printf("%d\n",z=(x%y,x/y));的输出结果是()。
A.1
B.0
C.4
D.3
D
定义如下变量和数组:
inti,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句for(i=0;i<3;i++)printf("%d",x[i][2-i]);的输出结果是()。
A.159
B.147
C.357
D.369
C
读出以下语句的输出结果是()。
intx=10,y=10;
printf(“%d%d\n”,x--,--y);
A.1010
B.99
C.910
D.109
D
两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是()。
scanf(“%x”,&x);
if(x++>5)printf("%d",x);
elseprintf("%d\n",x--);
A.7和5
B.6和3
C.7和4
D.6和4
C
设有如下定义:
char*aa[2]={"abcd","ABCD"};则以下说法中正确的是()。
A)aa数组成元素的值分别是"abcd"和ABCD"
B)aa是指针变量,它指向含有两个数组元素的字符型一维数组
C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
D)aa数组的两个元素中各自存放了字符'a'和'A'的地址
D
设有数组定义:
chararray[]=”China”;则数组所占的空间是________。
A.4个字节
B.5个字节
C.6个字节
D.7个字节
C
以下语句的输出结果是()。
inta=-1,b=4,k;
k=(++a<0)&&!
(b--<=0);
printf("%d,%d,%d\n",k,a,b);
A.1,0,4
B.1,0,3
C.0,0,3
D.0,0,4
D
若变量c为char类型,能正确判断出c为小写字母的表达式是_______。
A.’a’<=c<=’z’
B.(c>=’a’)||(c<=’z’)
C.(‘a’<=c)and(‘z’>=c)
D.(c>=’a’)&&(c<=’z’)
D
下列程序的输出结果是()。
char*p1="abcd",*p2="ABCD",str[50]="xyz";
strcpy(str+2,strcat(p1+2,p2+1));
printf("%s",str);
A.xyabcAB
B.abcABz
C.ABabcz
D.xycdBCD
D
已知:
intx;inty[10];下列______是合法的。
A.&x
B.&(x+3)
C.&5
D.&y
A
指出下面正确的输入语句__________。
A.scanf(“a=b=%d”,&a,&b);
B.scanf(“%d,%d”,&a,&b);
C.scanf(“%c”,c);
D.scanf(“%f%d\n”,&f);
B
以下可以作为C语言合法整数的是________。
A.1020B
B.0368
C.0Xffa
D.x2a2
C
在函数中默认存储类型说明符的变量应该是________存储类型。
A.内部静态
B.外部
C.自动
D.寄存器
C
不能把字符串:
Hello!
赋给数组b的语句是()。
A.charb[10]={'H','e','l','l','o','!
'};
B.charb[10];b="Hello!
";
C.charb[10];strcpy(b,"Hello!
");
D.charb[10]="Hello!
";
B
在C程序中有如下语句:
char*func(intx,inty);它是()。
A.对函数func的定义。
B.对函数func的调用。
C.对函数func的原型说明。
D.不合法的。
C
C语言中以追加方式打开一个文件应选择_______________参数。
A.“r”
B.“w”
C.“rb”
D.“a”
D
break语句的正确的用法是()。
A.无论在任何情况下,都中断程序的执行,退出到系统下一层。
B.在多重循环中,只能退出最靠近的那一层循环语句。
C.跳出多重循环。
D.只能修改控制变量。
B
根据C语言的语法规则,下列________个是不合法标识符。
A.do
B.Name
C.R5
D._exam
A
要把高级语言编写的源程序转换为目标程序,需要使用。
A. 编辑程序
B. 驱动程序
C. 诊断程序
D. 编译程序
D
为了避免嵌套的条件分支语句if-else的二义性,C语言规定:
C程序中的else总是与()组成配对关系。
A.缩排位置相同的if
B.在其之前未配对的if
C.在其之前未配对的最近的if
D.同一行上的if
C
以下对二维数组a进行正确初始化的是()
A.inta[2][3]={{1,2},{3,4},{5,6}};
B.inta[][3]={1,2,3,4,5,6};
C.inta[2][]={1,2,3,4,5,6};
D.inta[2][]={{1,2},{3,4}};
B
在以下一组运算符中,优先级最高的运算符是()。
A.<=
B.=
C.+
D.!
D
设m、n、a、b、c、d均为0,执行(m=a==b)||(n=c==d)后,m、n的值是()。
A.0,0
B.0,1
C.1,0
D.1,1
C
下述数据类型中,长度最短的一种数据类型是()。
A.int
B.short
C.float
D.char
D
以下不是C语言规定保留字的是()。
A.float
B.integer
C.signed
D.unsigned
A
为表示关系x≤y≤z,正确的C语言表达式是()。
A.(x<=y)&&(y<=z)
B.(x<=y)AND(y<=z)
C.(x<=y<=z)
D.(x<=y)&(y<=z)
A
若x、i、j、k都是int型变量,则执行下面表达式后x的值为()。
x=(i=4,j=8,k=16)
A.4
B.8
C.16
D.32
C
己知intx=10,y=20,z=30;以下语句执行后x,y,z的值是()。
if(x>y){z=x;x=y;y=z;}
A.x=20,y=30,z=30
B.x=30,y=20,z=10
C.x=10,y=20,z=30
D.x=20,y=10,z=30
C
二、阅读程序题
题干
答案
1、intx=6,y=7;
printf(“%d,”,x++);printf(“%d\n”,++y);
程序的输出结果是__________。
6,8
2、floatf=3.1415927;
printf(“%f,%5.4f,%3.3f”,f,f,f);
则程序的输出结果是__________。
3.141593,3.1416,3.142
3.写出下列程序的运行结果。
#include“stdio.h”
main()
{inta[]={1,2,3,-4,5};
intm,n,*p;
p=&a[0];p=&a[0];
m=*(p+2);
n=*(p+4);
printf(“%d%d%d”,*p,m,n);
}
135
4.写出下列程序的运行结果。
#include
main()
{
inti=0,j=0,a=6;
if((++i>0)||(++j>0))a++;
printf("i=%d,j=%d,a=%d\n",i,j,a);
}
i=0,j=0,a=7
5.写出下列程序的运行结果。
#defines5.5
#definef(x)s*x*x
main()
{
inta=1,b=2;
printf("%4.1f\n",f(a+b));
}
9.5
6、inta=3;
a+=(a<1)?
a:
1;printf(“%d”,a);
结果是__________。
4
7、main()
{inta[5]={2,4,6,8,10},*p,**k;
p=a;k=&p;
printf("%d,",*(p++));
printf("%d\n",**k);}
程序的输出结果是__________。
2,4
8、main()
{inta,b;
for(a=1,b=1;a<=100;a++)
{if(b>=20)break;
if(b%3==1)
{b+=3;continue;}
b-=5;}
printf(“%d”,b);}
程序的输出结果a的值为__________。
22
9、inty=1,x,*p,a[]={2,4,6,8,10};
p=&a[1];
for(x=0;x<3;x++)
y+=*(p+x);
printf("%d\n",y);
程序的输出结果y的值是__________。
19
10.写出下列程序的运行结果。
#include
main()
{
intm[][3]={1,4,7,2,5,8,3,6,9};
inti,j,k=2;
for(i=0;i<3;i++)
{
printf("%d",m[k][i]);
}
}
369
11.#include
main()
{inta=10,b=4,c=3;
if(a
if(a printf(“%d,%d,%d”,a,b,c);} 程序的输出结果是__________。 10,4,3 12.#include main() {inty=9; for(;y>0;y--) if(y%3==0){printf(“%d”,--y);continue;} } 程序的输出结果是__________。 852 13.#include main() {intx,y; for(y=1,x=1;y<=50;y++) {if(x>=10)break; if(x%2==1){x+=5;continue;} x-=3;} printf(“%d”,y);} 程序的输出结果是__________。 6 三、程序填空题 题干 答案 1、求主次对角线之和。 main() {staticinta[][3]={9,7,5,1,2,4,6,8}; intI,j,s1=0,s2=0; for(I=0;I<3;I++) for(j=0;j<3;j++) {if(__________) s1=s1+a[I][j]; if(__________) s2=s2+a[I][j]; } printf(“%d\n%d\n”,s1,s2); } I==jI+j==2 2、从键盘上输入10个数,求其平均值。 main() {inti; floatf,sum; for(i=1,sum=0.0;i<11;i++) {__________; __________; } printf(“average=%f\n”,sum/10); } scanf(“%f”,&f)sum+=f 3、下面程序的功能是求1-100之间的能被9除余8的数之和并输出结果,请补充程序。 #include voidmain() { intn,sum=0; for(n=1;n<=100;n++) { if() sum=sum+n; } ; } n%9==8printf(“%d”,sum) 4、以下程序定义一个求圆面积的函数,并在主函数中调用该函数,请补充完整程序。 #include"stdio.h" doublearea(doubler) {doubles; ; returns; } voidmain() {doubles,r; printf("请输入圆的半径: "); scanf("%lf”,&r); s=; printf("圆的面积为: %f",s); } s=3.14*r*rarea(r) 5、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。 #include main() { FILE*fp; charc; fp=__________; do { c=getchar(); fputs(c,fp); }while(c! =EOF); __________;; } fopen(“myfile”,w)fclose(fp) 6、下面的程序段功能是统计100-999之间所有满足三个数字之积为24,三个数字之和为12的数的个数,请补充程序。 main() { intx,y,z,count=0; for(x=1;x<=9;x++) for(y=0;y<=9;y++) for(z=0;z<=9;z++) {if() count++; } } (x*y*z==24)&&(x+y+z==12)printf(“%d”,count); 7、学生成绩的字每等级和分数范围如下: 字母等级分数范圈 A90~100 B80~89 C70~79 D60~69 E0~59 其它字母输入错误 输入字母等级之后,输出相应的分数范围。 #include voidmain() { __________;/*空格4*/ scanf("%c",&score); switch(score) { case'A': printf("A: 90~100\n");break;; case'B': printf("B: 80~89\n");break; case'C': printf("C: 70~79\n");break; case'D': printf("D: 60~69\n");break; case'E': printf("E: 0~59\n");break; __________: printf("输入错误\n");/*空格5*/ } } charscore;default 四、编程题 题干 答案 1、编程序解问题: 输入n,求1+2+3+…+n的和。 #include"stdio.h" voidmain() { intn,s=0,i; printf("请输入n: "); scanf("%d",&n); for(i=1;i<=n;i++) s=s+i; printf("1+2+3+..+%d=%d\n",n,s); } 2、三个整数a、b、c,由键盘输入,输出其中最大的数。 include main() {intmax(int,int); inta,b,c; printf("请输入三个整数: "); scanf("%d,%d,%d",&a,&b,&c); printf("max=%d\n",max(max(a,b),c)); } intmax(intx,inty) { if(x>y)returnx; elsereturny; } 3、从键盘输入的10个整数中,找出第一个能被7整除的数。 若找到,打印此数后退出循环;若未找到,打印“notexist”。 #include main() {intI,a; for(I=1;I<=10;I++) {scanf("%d",&a); if(a%7==0) {printf("%d",a);break;}} if(I==11) printf("notexist"); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 复习 思考题