C语言总复习.docx
- 文档编号:15580936
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:18
- 大小:25.61KB
C语言总复习.docx
《C语言总复习.docx》由会员分享,可在线阅读,更多相关《C语言总复习.docx(18页珍藏版)》请在冰点文库上搜索。
C语言总复习
《C语言》总复习
一、填空(每空1分,共10分)
1、C语言的函数的函数体一般由两部分构成的,分别是:
_________和__________________。
2、一个程序往往包括四部分的内容,它们分别是_________、_________、_________和_________。
3、一个C语言函数由两部分组成,分别是:
——————————————、—————————————————。
4、一个算法的有5个特点,分别是有穷性、——————、有零个或多个输入、——————————和有效性。
5、结构构成算法的基本单元,常用的三种基本结构有顺序结构、————————和————————。
6、C语言中数据的基本类型有四种,分别是整型、——————、实型和——————。
7、C语言中的构造类型有三种,分别是——————、结构体类型和——————。
8、写出下列数据类型的取值范围,int______________________;shot______________________;long_______________;float____________________。
9、写出下列字符在C语言中的表示形式,换行————;回车————;\_____________;’_____________。
10、floatx=3.9,y=4.7;写出将x+y强制转换为整型的表达式:
————————。
11、inta=12;写出a*=2+3该表达式的返回值:
——————。
12、5>3&&8<9-!
0该表达式的返回值:
——————。
13、已知变量year表示某年的年份,写出判断该年是闰年的表达式:
——————————————————————。
14、写出下列系统函数所在的头函数库,puts()___________;getchar()______________;fabs()____________;strlen()______________。
15、变量的存储类别有四种,分别是auto、________、_________和extern.
16、将NUMBER定义为一个符号常量,其值为80。
———————————————
17、定义一个指针变量px,并使其指向double类型的x变量。
doublex;
______________
18、定义一个学生信息的结构体,包括学号、姓名、性别、年龄、成绩和籍贯六个成员,并定义出该结构类型的两个变量st1,st2。
structstudent
{intnum;
charname[10];
charsex;
_________;
floatscore;
_____________;
};
19、定义了一个共用体及其变量a如下:
union
{intx;
charc;
}a;
a.x=65;
则,a.c=_________(P288)
20、定义了一个枚举类型的变量如下:
enumweek{sun,mon,tue,wed,thu,fri,sat}w1;
则,w1=wed;的返回值是_________。
二、选择题(每题2分,共20分)
1、正确的自定义标识符是()
A.a=2B.a+bC.nameD.default
2、错误的转义字符是()
A.'\091'B.'\\'C.'\0'D.'\''
3、inta,b,c;执行表达式a=b=1,a++,b+1,c=a+b--后,a,b和c的值分别是()
A.2,1,2B.2,0,3C.2,2,3D.2,1,3
4、在C语言中,错误的常数是()
A.1E+0.0B.5.C.0xafD.0L
5.下面运算符优先级最高的是()
A.<=B.=C.%D.&&
6.若数组名作实参而指针变量作形参,函数调用实参传给形参的是()
A.数组的长度B.数组第一个元素的值
C.数组所有元素的值D.数组第一个元素的地址
7.变量的指针含意是指变量的()
A.值B.地址C.存储D.名字
8.设intk;则语句for(k=0;k=1;k++);和语句for(k=0;k==1;k++);执行的次数分别是()
A.无限和0B.0和无限C.都是无限D.都是0
9.某文件中定义的静态全局变量(或称静态外部变量)其作用域是()
A.只限某个函数B.本文件C.跨文件D.不限制作用域
10.设struct{inta;charb;}Q,*p=&Q;错误的表达式是()
A.Q.aB.(*p),bC.p->aD.*p.b
11.C语言的关键字是( )
A.NULL B.file C.include D.typedef
12.正确的自定义标识符是( )
A.if B.a*b C.iF D.8pq
13.存储字符串"a\nb"所用的字节数是( )
A.1 B.2 C.3 D.4
14.在C语言中,正确的说法是( )
A.函数内部和外部定义的变量同名是合法的
B.只要形参和实参都是变量,那么形实结合一定是地址传递
C.变量的定义和声明(也称说明)功能是相同的
D.没有return的函数就失去了返回功能
15.设inta=0,b=5;执行表达式++a||++b,a+b后,a,b和表达式的值分别是( )
A.1,5,7 B.1,6,7 C.1,5,6 D.0,5,7
16.关系表达式a≤x
A.a<=x=a&&x=a||x
(x=b)
17.设inta[3][2];能正确表示a数组元素地址的是( )
A.a[1] B.a[3] C.*a[2] D.&a[3][2]
18.设inta=3,b=4;执行printf("%d,%d",(a,b),(b,a));后的输出结果是( )
A.3,4 B.4,3 C.3,3 D.4,4
19.设chars[10],*p;正确的操作语句是( )
A.p="MBA"; B.s++; C.s="MBA"; D.s[]="MBA";
20.设inta[5][5],*b[5],(*c)[5]=a;则被分别称为是( )
A.数组、数组指针、指针数组 B.数组、指针数组、指针函数
C.数组、数组指针、函数指针 D.数组、指针数组、数组指针
21.算法具有五个特性,以下选项中不属于算法特性的是B
(A)有穷性(B)简洁性(C)可行性(D)确定性
22.以下选项中可作为C语言合法常量的是A
(A)-80.(B)-080(C)-8e1.0(D)-80.0e
23.以下叙述中正确的是C
(A)用C语言实现的算法必须要有输入和输出操作
(B)用C语言实现的算法可以没有输出但必须要有输入
(C)用C程序实现的算法可以没有输入但必须要有输出
(D)用C程序实现的算法可以既没有输入也没有输出
24.以下不能定义为用户标识符是D
(A)Main(B)_0(C)_int(D)sizeof
25.以下选项中,不能作为合法常量的是B
(A)1.234e04(B)1.234e0.4(C)1.234e+4(D)1.234e0
26.数字字符0的ASCII值为48,若有以下程序C
main()
{chara='1',b='2';
printf("%c,",b++);
printf("%d\n",b-a);}
程序运行后的输出结果是
(A)3,2(B)50,2(C)2,2(D)2,50
27.有以下程序A
main()
{intm=12,n=34;
printf("%d%d",m++,++n);
printf("%d%d\n",n++,++m);
}
程序运行后的输出结果是
(A)12353514(B)12353513(C)12343514(D)12343513
28.有以下语句:
intb;charc[10];,则正确的输入语句是B
A)scanf("%d%s",&b,&c);B)scanf("%d%s",&b,c);
c)scanf("%d%s",b,c);D)scanf("%d%s",b,&c);
29.有以下程序A
main()
{intm,n,p;
scanf("m=%dn=%dp=%d",&m,&n,&p);
printf("%d%d%d\n",m,n,p);
}
若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是
A)m=123n=456p=789B)m=123n=456p=789
C)m=123,n=456,p=789D)123456789
30.有以下程序B
main()
{inta,b,d=25;
a=d/10%9;b=a&&(-1);
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是
A)6,1B)2,1C)6,0D)2,0
三、根据题目的功能,补充完整下列程序(每题5分,共20分)
1.输出下列图形。
123456789
23456789
3456789
456789
56789
6789
789
89
9
main()
{inti,j;
for(i=1;i<=_________;i++)
for(j=_________;j<=9;j++)
printf("%2d",j);
printf("\n");
}
2.输出下列图形。
1
13
13 5
13 5 7
13 5 7 9
1 3 5 7 9 11
main()
{inti,j;
for(i=1;i<=___;i++)
{for(j=1;j<=____;j+=2)
printf("%3d",j);
printf("\n");
}
}
3.求整型数组a[10]中模3余2的所有元素。
main()
{inta[10]={1,2,3,11,5,7,33,23,21,43};
inti;
for(i=0;_______;i++;)
if(_________________)
printf(“%4d”,a[i]);
printf(“\n”);
}
4.输入3个实数a,b,c,要求按由小到大的顺序输出。
main()
{
floata,b,c,t;
scanf(“%f%f%f”,&a,&b,&c);
if(a>b)
{_____________________________________________}
if(a>c)
{t=a;a=c;c=t;}
if(____________)
{t=b;b=c;c=t;}
printf(“%5.f,%5.2f,%5.2f\n”,_____________);
}
5.求100~200的所有素数。
#include_________
main()
{
intm,k,i=0;
for(m=101;______________;m+=2;)
{
_________;
for(i=2;I<=k;i++;)
if(m%I==0)_______;
if(i>k)
printf(“%5d”,m);
}
printf(“\n”);
}
6.用
1-
+……公式来求π的近似值,直到某一项的绝对值小于10-6为止。
#include“math.h”
main()
{intsign;
folatn,t,pi;
t=1;
pi=0;
n=1.0;
sign=1;
while(_______________)
{pi=pi+t;
n+=2;
____________;
t=sign/n;
}
_________;
printf(“π=%f\n”,pi);
}
7.输入某年某月后,输出该月的天数。
main()
{intyear,month,day;
scanf("%d%d",&year,&month);
if(month<1||month>12)printf("InputError\n");
else
{ swich(month)
{case2:
day=________________________?
29:
28;
break;
case4:
case6:
case9:
case11:
day=30;______________________;
_______________________:
day=31;
}
printf("year=%d,mouth=%d,day=%d\n",year,mouth,day);
}
}
8.已知一个三角形的三条边,求该三角形的面积。
#include“math.h”
main()
{floata,b,c,s,area;
__________________________;
s=(a+b+c)/2;
______________________________;
printf(“arear=%f\n”,arear);
}
四、根据下列程序,写出其功能或运算结果(每题5分,共20分)
1.#include
intf(n)
intn;
{staticints=1;
while(n)s*=n--;
returns;
}
main()
{inti,j;
i=f(3);j=f(5);
printf("i=%dj=%d\n",i,j);
}
结果:
2.#include
inta[10]={1,2,3,4,5,6,7,8,9,10};
rev(m,n)
int*m,n;
{intt;
if(n>1)
{
t=*m;*m=*(m+n-1);*(m+n-1)=t;
rev(m+1,n-2);
}
}
main()
{inti;
rev(a+2,6);
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
}
结果:
3.voidtrans3(inta[3][3],intb[3][3])
{intr,c;
for(r=0;r<3;r++)
for(c=0;c<3;c++)
b[r][c]=a[c][r];
return;
}
main()
{intmat1[3][3]={{1,2,3},{4,5,6},{7,8,9}},mat2[3][3];
inti,j;
trans3(mat1,mat2);
for(i=0;i<3;i++)
{printf("\n");
for(j=0;j<3;j++)
printf("%4d",mat2[i][j]);
}
printf("\n");
}
结果:
4.
voidprintchar(intn,charch)
{
inti;
for(i=0;i printf("%c",ch); return; } main() {intr,st=5,sp; for(r=0;r<5;r++) {sp=r; printchar(sp,'\040'); printchar(st,'*'); printf("\n"); } } 结果: 5. voidprintchar(intn,charch) { inti; for(i=0;i printf("%c",ch); return; } main() {intr,st=5,sp; for(r=0;r<5;r++) {sp=4-r; printchar(sp,'\040'); printchar(st,'*'); printf("\n"); } } 结果: 6. main() {inti,j; inta[20][20]; for(i=0;i<6;i++) {for(j=0;j<=i;j++) {if(j==0||i==j) a[i][j]=1; elsea[i][j]=a[i-1][j-1]+a[i-1][j]; printf("%5d",a[i][j]); } printf("\n"); } } 结果: 7. main() {inta[5]={8,6,5,4,1}; inti,j,t; for(i=0,j=4;i t=a[i],a[i]=a[j],a[j]=t; for(i=0;i<5;i++) printf("%5d",a[i]); printf("\n"); } 结果: 8. #include"string.h" inthextoten(chara[5]) {inti,num; charch; num=0; for(i=0;i<5;i++) {ch=a[i]; if((ch=='H')||(ch=='\0')) break; if((ch>=0)&&(ch<='9')) ch=ch-'0'; else ch=ch-'0'-7; num=num*16+ch; } return(num); } main() {charstrhex[5]=“100”; intnumten,k; strupr(strhex); numten=hextoten(strhex); printf("NUM=%d\n",numten); } 结果: 五、程序设计(每题10分,共30分) 1.输出下列图形。 * *** ***** ******* ********* *********** 2.输出下列图形。 *********** ********* ******* ***** *** * 3.输出下列图形。 ********** ********** ********** ********** 4.输出下流图形。 ********** ********** ********** ********** 5.求3*5整数矩阵中的最大值。 (要求每个元素的数据由键盘输入) 6.求3*5整数矩阵中的最小值。 (要求每个元素的数据由键盘输入) 7.求3*5整数矩阵中的平均值。 (要求每个元素的数据由键盘输入) 8.输入一个摄氏温度,要求输出其对应的华氏温度。 参考公式: (其中F表示华氏温度,C表示摄氏温度) 9.编写一个函数,判断一个字符串是否回文。 如果是回文,返回1;否则的话,返回0。 并给出其主函数的完整调用过程。 10.编程求两个正整数的最小公倍数。 11.用“冒泡法”对输入的10个字符按由小到大的顺序排列。 12.不用系统函数strcpy()实现将字符串a复制到字符串b的功能。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 复习