C语言程序设计复习资料.docx
- 文档编号:3946490
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:23
- 大小:26KB
C语言程序设计复习资料.docx
《C语言程序设计复习资料.docx》由会员分享,可在线阅读,更多相关《C语言程序设计复习资料.docx(23页珍藏版)》请在冰豆网上搜索。
C语言程序设计复习资料
《C语言程序设计》复习资料
填空题
1、在C语言中,字符类型的数据在内存中以相应的ASCII码存放,所以字符也可以用整数形式输出。
2、在C语言中,符号常量是在一个程序中指定的用名字代表的常量,定义符号常量一般用#define命令,定义一个符号常量PI,其值为3.14159,格式是#definePI3.14159。
3、用条件运算符写出求两个数a,b大者的表达式max=a>b?
a:
b。
4、在一个函数中有定义int(*p)[10],则p为 一个用于指向数组的指针变量 。
5、C语言函数参数传递的两种方式是传地址和传数值;
6、在C语言中,一般在程序中用_struct_________来定义构造类型
7、C语言程序是函数构成的,其中有且只有一个主函数,可以有多个其它函数。
8、设整型变量X,Y,Z的值均为15,执行X%=Y+Z后,X=15,继续执行X=Y>Z?
X+2:
X-2后,X=13。
9、执行语句“for(j=1;j<=5;j++);”后,变量j的值为6。
10、函数形式参数的作用域是本函数有效。
11、若有以下定义:
chara;intb;floatc;doubled;则表达式a*b+d-c的值的类型是double。
12、在一个函数中有定义inta=5,*p=&a;执行*p=a+15;后,a的值为20。
13、在一个函数中有定义floata=70,*p=&a;执行*p=*p+20;后,a的值为90。
14、定义一个长度为20的整形一维静态数组a,且前4个元素的初值为6,12,18,24,定义的格式为:
staticinta[20]={6,12,18,24};。
15、结构化程序设计的三种基本结构是顺序结构、选择结构和循环结构。
16、表达式(int)(20+2.5*3+6+5.8)的值是39。
17、写出表达式11<14&&17<25的值1。
18、在C语言中,字符串是用双引号引起来的一串字符。
在机器中,字符串"ABcdEFg\n"需占用 8 字节的内存空间。
19、intj,k,i=15;j=i++;K=i+j;则K的值是:
31。
20、.结构化程序设计的三种基本结构是:
选择结构、循环结构和___顺序结构_____________。
21、在C语言中,一个二维数组可以看成若干个_一维_______________数组。
22、文件操作步骤通常是:
打开、操作和__关闭_____________。
23、一个C语言程序总是从main开始执行
24、设宏定义#defineD(x)x/x,则引用D(2+3)后的值是6____________。
注意(用2+3替代x得2+3\2+3=6,不是(2+3)\(2+3))
25、以下十个运算符+!
<
=,?
:
&&=||%中优先级别最高和最低的分别是___!
____________和____,___________。
26、文件操作步骤通常是:
打开、操作和___关闭____________。
27、设inta,b=2,c=3;执行表达式a=(b>c)?
(b+1):
(c+2),3后a的值是_____5__________。
28、语句int(*p)()的含义是p是一个指向函数的指针变量,该函数的返回值是一个整型数据.
29、全局变量放在内存的静态储存区
30在C语言中,单目运算符的结合方向(运算方向)是_从右到左___________;唯一的一个三目运算符是条件运算符__________。
31能正确表示“当ch为小写字母为真,否则为假”的表达式是‘a’<=ch&&ch<=‘z’;。
32循环语句for(;;)printf("OK\n");和do{printf("OK\n");}while(0);执行完毕循环,循环次数分别是_无限次_______________和__一次______________。
33明inti,j,k;则表达式i=10,j=20,k=30,k*=i+j的值为__900______________
二、选择题
1、在C语言中字符型(char)数据在内存中是以(d)形式存储的
A原码B补码C反码DASCII码
2、在C程序中可以作为变量名的合法标识符是(d)
AstaticB23-bC#stuDIf
3、若有以下定义和语句:
inta,b,c;scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为了使1,3,2分别赋给a,b,c,从键盘上输入数据的正确形式是(d)
A132B1,3,2Ca=1b=3c=2Da=1,b=3,c=2
4、若要求在if后一对圆括号中表示a不等于0的关系,能正确表示这一关系的表达式是(a)
Aa!
=0Ba>=0Ca==0Da<0
5、以下说法不正确的是(c)
Afor,while,do-while循环体中的语句均可由空语句构成;
B使用while和do-while循环时,循环变量初始化的操作应在循环语句之前完成;
Cdo-while和for循环均是先执行循环体语句,后判断表达式;
Dwhile循环是先判断表达式,后执行循环体语句。
6、循环语句for(a=0,b=0;a<=8&&b!
=66;a++)x=a+b;的循环次数是(b)
A8次B9次C无限循环D1次也不执行
7、C语言中函数的返回值的类型是由(d)决定的
A调用该函数的主调函数类型;Breturn语句中的表达式类型;
C调用函数时指定;D定义函数时所指定的返回值类型。
8、在定义inta[5][4];对数组元素的正确引用是(a)
Aa[0][0]Ba[2][4]Ca[5][4]Da[1,1]
9、若给出以下定义:
charm[10],*p=m;则以下表达式不正确的是(b)
Ap=m+5;Bm=m+p;Cm[3]=‘a’;Dp=p+1;
10、若有以下定义和语句:
structperson
{intno;
char*name;
}stu,*p=&stu;
则以下引用方式正确的是(c)
Ap.noBstu->noCp->noD*p.no
11、有一个二维数组s[3][3],其第2行第3列元素的正确表示是:
b
A*(S+3)+3Bs[2][3]Cs[2,3]Ds23
12、C语言规定数组名做实参时,它和对应形参之间的数据传递方式是:
C
A单向值传递B无传递C地址传递D用户指定传递方式
13、若变量a是int类型,并执行了语句:
a=‘A’+2;则正确的叙述是:
b
Aa的值是字符2Ba的值是67C不能用字符和数字相加Da的值是‘A’
14、以下程序的输出结果是:
c
main()
{inta=5,b=4,c=6,d;
Printf(“%d\n”,d=a>b?
(a>c?
a:
c):
b));
}
A5B4C6D不确定
15、在说明语句中有:
float(*fp)();则fp代表的是:
c
A一个用于指向一维数组的行指针;B一个返回值为实型的函数名;
C一个用于指向函数的指针变量;D一个指向实型数据的指针;
16、有int*P;刚下面语句正确的是:
a
Ap=(int*)malloc(sizeof(int));Bp=malloc(int);
Cp=int*malloc(sizeof(int));Dp=malloc(sizeof(int));
17、设有宏定义#dedinepi3.14和#dedineS(r)pi*r*r
若在函数中有语句floatb=3.6,area;area=S(b);则area的值是d
A3.6B3.14C11.304D40.6944
18、若给出以下定义:
charm[10],*p=m;则以下表达式不正确的是(b)
Ap=m+5;Bm=m+p;Cm[3]=‘a’;Dp=p+1;
19、若变量a是int类型,并执行了语句:
a=‘A’+2;则正确的叙述是:
b
Aa的值是字符2Ba的值是67C不能用字符和数字相加Da的值是‘A’
20设有如下定义:
d
int(*ptr)*();则以下叙述中正确的是
Aptr是指向一维组数的指针变量
Bptr是指向int型数据的指针变量Cptr是指向函数的指针,该函数返回一个int型数据Dptr是一个函数名,该函数的返回值是指向int型数据的指针
C21下列不正确的转义字符是A)'、、'B)'、“C)'074'D)'、0'"d22若有以下定义:
chara;intb;floatc;doubled;则表达式a*bd--c值的类型为A)floatB)intC)charD)double
A23表示关系x《=y《=z的c语言表达式为
A)(X《=Y)&&(Y《=Z)B)(X《=Y)AND(Y《=Z)
C)(X《=Y《=Z)D)(X《=Y)&(Y《=Z)
D24设a=1,b=2,c=3,d=4,则表达式:
a《b?
a:
c《d?
a:
d的结果为
A)4B)3C)2D)1
B25设x为int型变量,则执行以下语句后,x的值为
x=10;x=x--=x--x;
A)10B)20C)40D)30
C26下列可作为C语言赋值语句的是
A)x=3,y=5B)a=b=6C)i--;D)y=int(x);
C27设x,y,z,t均为int型变量,则执行以下语句后,t的值为
x=y=z=1;
t=x||y&&z;
A)不定值B)2C)1D)0
B28设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:
scanf("i=%d,f=%f",&i,&f);
为了把100和765.12分别赋给i和f,则正确的输入为
A)100765.12B)i=100,f=765.12
C)100765.12D)x=100y=765.12
C29设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;
}
A)2B)4C)6D)8
C30给出以下定义:
charx[]="abcdefg";
chary[]={'a','b','c','d','e','f','g'};
则正确的叙述为
A)数组X和数组Y等价B)数组x和数组Y的长度相同
C)数组X的长度大于数组Y的长度D)数组X的长度小于数组Y的长度
D31以下叙述中不正确的是
A)在不同的函数中可以使用相同名字的变量
B)函数中的形式参数是局部变量
C)在一个函数内定义的变量只在本函数范围内有效
D)在一个函数内的复合语句中定义的变量在本函数范围内有效
D32假定a和b为int型变量,则执行以下语句后b的值为
a=1;b=10;
do
{b-=a;a++;}
while(b--<0);
A)9B)--2C)--1D)8
B33设j为int型变量,则下面for循环语句的执行结果是
for(j=10;j>3;j--)
{if(j%3)j--;
--j;--j;
printf("%d",j);
}
A)63B)74C)62D)73
C34设有以下宏定义:
#defineN3
#defineY(n)((N1)*n)
则执行语句:
z=2*(NY(51));后,z的值为
A)出错B)42C)48D)54
B35设P1和P2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是
A)k=*P1*P2;B)p2=k;C)P1=P2;D)K=*P1*(*P2);
D36设有如下定义:
intarr[]={6,7,8,9,10};
int*ptr;
则下列程序段的输出结果为
ptr=arr;
*(ptr2)=2;
printf("%d,%d、n",*ptr,*(ptr2));
A)8,10B)6,8C)7,9D)6,10
B37以下程序的输出结果是
main()
{inti,k,a[10],p[3]:
K=5;
for(i=0;i《10;i)a[i]=i;
for(i=0;i《3;i)p[i]=a[i*(i1)];
for(i=0;i《3;i)k=p[i]*2;
printf("%d、n",k);
}
A)20B)21C)22D)23
A38执行以下程序段后,m的值为
inta[2][3]={{1,2,3},{4,5,6}};
intm,*p;
p=&a[0][0];(与p=&a是不相同的,而二维数组是按行顺序存放的,当p=&a[0][0]时,p的移动是由行到列的)
m=(*p)*(*(p+2))*(*(p+4));
A)15B)14C)13D)12
D(39)有以下程序段
chararr[]="ABCDE";
char*ptr;
for(ptr=arr;ptr 输出结果是 A)ABCDB)AC)ED)ABCDE D(40)有以下程序 main() {intx,i; for(i=1;i<=50;i++) {x=i; if(x%2==0) if(x%3==0) if(x%7==0) printf(“%d”,i);(相当于i=2*3*7,但是网上答案是D) } } 输出结果是 A)28B)27C)42D)41 A(41)有下列程序#include《stdio.hmain(){union{intk;chari[2];}*s,a;s=&a;s--i[0]=0x39;s--i[1]=0x38;printf("%x、n",s--k); } 输出结果是(程序有错吧! cccc3839) A)3839B)3938C)380039D)390038 A(42)有以下程序 #include《stdio.h main() {inta,b,c=246; a=c/100%9; b=(--1)&&(--1); printf("%d,%d、n",a,b); } 输出结果是 A)2,1B)3,2C)4,3D)2,--1 B(43)有以下程序#include《stdio.hstructstu {intnum; charname[10]; intage; }; voidfun(structstu*p) {printf("%s、n",(*p)。 name);} main() { structstustudents[3]={{9801,"Zhang",20}, {9802,"Wang",19}, {9803,"Zhao",18}}; fun(students[2]); } 输出结果是 A)ZhangB)ZhaoC)WangD)18 B(44)设有以下说明和定义: typedefunion {longi;intk[5];charc;}DATE; structdate {intcat;DATEcow;doubledog;}too; DATEmax; 则下列语句的执行结果是((2+10+8)+10) printf("%d",sizeof(structdate)sizeof(max)); A)26B)30C)18D)8 D(45)有以下程序 main() {chara[]="programming",b[]="language"; char*p1,*p2; inti; p1=a;p2=b; for(i=0;i《7;i) if(*(p1i)==*(p2i))printf("%c",*(p1i)); } 输出结果是 A)gmB)rgC)orD)ga B(46)有以下程序(程序有错吧! ) viodfun(inta,intb,intc) {a=456;b=567;c=678;} main() {intx=10,y=20,z=30; fun(x,y,z); printf("%d,/%d、n",c,d); } 输出结果是 A)30,20,10B)10,20,30C)456,567,678D)678,567,456 C(47)有以下程序 intfun(intx,inty,int*cp,int*dp) {*cp=xy;*dp=x--y;} main() {inta,b,c,d; a=30;b=50; fun(a,b,&c,&d); printf("%d,%d、n",c,d); } 输出结果是 A)50,30B)30,J50C)80,--20D)80,20 C(48)有以下程序 main() {inti,j; for(j=10;j<11;j) {for(i=9;i if(! (j%i))break; if(i=j--1)printf("%d",j); } } 输出结果是 A)11B)10C)9D)1011 C(50)有以下程序 #include"atdio.h" intabc(intu,intv); main() {inta=24,b=16,c; c=abc(a,b); printf('%d、n",c);” } intabc(intu,intv) {intw; while(v) {w=u%v;u=v;v=w} returnu; } 输出结果是 A)6B)7C)8D)9 三、阅读程序写出运行结果 1、main() {intx,y=10; x=-3+5*5-6; printf("x=%dy=%d\n",x,y); x=10+2*3-7; printf("x=%d\n",x); x=(7+6)%5+2; y=x+y; printf("x=%dy=%d\n",x,y); } 输出结果: x=16y=10 x=9 x=4y=14 2、#include“stdio.h” main() { int sum=0,k=1; do{ sum=sum+k; k=k+2; }while(k<=10); printf(“sum=%d”,sum) ; } 输出结果: sum=25 3、#include“stdio.h” main() { inti; intcount(inti); for(i=1;i<=3;i++) count(i); } intcount(intn) {staticintx=1; printf(“%d: x=%d,“,n,x); x=x+2; printf(“x+2=%d\n,“,x); } 输出结果1: x=1,x+2=3 2: x=3,x+2=5 3: x=5,x+2=7 4、swap(int*p1,int*p2) {inttemp; temp=*p1; *p1=*p2; *p2=temp; } main() {inta,b; int*pt1,*pt2; scanf("%d%d",&a,&b); pt1=&a; pt2=&b; if(a printf("%d%d",*pt1,*pt2); } 输入5566 输出结果: 6655 5、#include main() {inta,b,c,d,x; a=c=0;b=21;d=60; if(a)d=d–30; elseif(! b) elseif(! c)x=55; elsex=65; printf(“d=%d,x=%d\n”,d,x); } 输出结果: d=60,x=55(程序错误! ) 6、#include main() {inta,b; for(a=1;a<=6;a++) {for(b=1;b<=14-2*a;b++) printf(““);/*输出一个空格*/ for(b=1;b<=a;b++) printf(“%4d“,a); printf(“\n“); } } 输出结果: 1 22 333 4444 55555 666666 7、#include #definesub(x)(x)–(x) main() {inta=24,b=46,c=78,m; m=sub(a+b)*c; printf(“m=%d”,m); } 输出结果: m=0 8、#include main() {inta[3][3]={21,22,23,24,25,26,27,28,29},j; Longm=1; for(j=0;j<3;j++) m=m*a[j][j]; printf(“m=%d“,m); } 输出结果: m=15225(m=21*25*29) 9、#include main() {inta[3][3]={{7},{8},{9}},*p,k; p=&a[0][0]; for(k=0;k<2;k++) {if(k==0)a[k][k+1]=*p+1; else++p; printf(“%d”,*p); } } 输出结果: 78
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 复习资料