2012秋季C语言程序设计复习题

更新时间:2024-03-01 05:08:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2012秋季开大软件学院《C语言程序设计》复习题

一、填空题。(每小题1分,共计63分) 1、(计算机语言)是人与计算机进行交流的语言,是非自然语言的一种形式。 2、计算机语言大体分为(机器语言)、(汇编语言)、(高级语言)与(面向对象的语言)四种。

3、用(机器语言)编写的程序,计算机能够直接识别和执行,执行效率很高。 4、机器语言与(汇编语言)被称为低级语言。 5、最早的高级语言主要用于(科学计算)。

6、高级语言的翻译方式通常分为(编译)和(解释)两种方式。 7、(算法)是程序设计的灵魂,计算机语言只是其具体表示形式。 8、算法的常用表示方法有(自然语言)、(伪代码)、(程序流程图)、N-S图与PAD图等方法。

9、现代程序一般都具有(顺序结构)、(分支结构)、(循环结构)三种基本结构。 10、C语言程序中的错误一般分为(语法错误)、(语义错误)和(逻辑错误)三类。

11、模块化程序设计中,程序模块的设计原则是:功能的(单一性),模块的(有效性),模块的(可维护性)与(可测试性)。

12、结构化程序设计采用(自顶向下,逐步求精)的设计方法。 13、每一个C程序都必须有一个(main())函数。

14、C语言的输入和输出操作都是由库函数(scanf())和(printf())等来完成的。

15、C语言的标识符只能由(字母)、(数字)、(下划线)组成,第一个字符必须为(字母)或(下划线)。

16、在程序运行过程中,其值不能被修改的固定量称为(常量),可以改变的量叫(变量)。

17、数字0123在C语言中代表(八)进制数,它相当于十进制数的(83),而数字0X123在C语言中代表(十六)进制数,它相当于十进制数的(291)。 18、C语言中,整型变量可分为(基本整型)、(短整型)、(长整型)、(无符号整型)四种类型。

19、一个字符型变量在内存中占(一个)字节,它可以参加任何(整型)运算。 20、C语言中,逻辑表达式的运算结果为1时代表(真),结果为0时代表(假)。 21、BREAK语句只能用在(switch)语句和(循环)语句中表示退出或跳出当前程序段。

22、C语言的三种逻辑运算符按优先级次序依次是(!)、(&&)和(||)。 23、被重复执行的语句部分称为(循环体)。 24、一个良好的结构化程序应该只有一个(入口),且只有一个(出口),所以一般不允许出现(死循环)。

25、continue语句的作用是结束(本次循环),忽略其(后面的语句),回到(循环的开头)进行下一次循环判定。 26、(下标)用来标识元素在数组中的顺序号,因此数组元素也被称为(下标)变量。

27、数组声明的方括号中给出的是数组的(长度),而数组元素中的下标是该元

素在数组中的(位置)标识。

二、判断题。(每小题1分,共计20分)

1、在C语言中可以直接使用数组名输入输出字符串。(√)

2、使用%S格式输出字符串时,输出字符中不包括结束标志“\\0”。(√) 3、数组的初始化工作是在编译阶段进行的。(√)

4、使用int a[n]声明数组时,n可以是任意整型变量。(X)

5、break语句可以强制退出所有循环,直接执行最外层循环外的后续语句。(X) 6、for循环、while循环与do while循环均可相互交叉嵌套多层使用。(X) 7、while循环与do while循环完全可以进行功能互换,没有任何区别。(X) 8、while循环的循环体可以是单语句、空语句或多条语句。(√) 9、累加器变量与累乘器变量的初始值均为1。(X)

10、如果switch语句中只有一个case语句,则可以省略花括号。(√) 11、switch语句组中,多个case语句可以共用一组执行语句。(√) 12、三目运算符?:的功能相当于一个双分支if…else语句的功能。(√) 13、用%C格式控制符输入字符型数据时必须要用单引号把字符括起来。(X) 14、强制类型转换可以强制改变变量原来的数据类型。(X) 15、赋值运算符与所有复合赋值运算符的运算结合性相反。(X) 16、C语言的全部功能都是由函数实现的。(√) 17、二维数组是按列存取数组元素的。(X)

18、for循环的三个表达式必须至少有一个不能为空。(X) 19、else总是与距离它最近的if语句相配对。(√) 20、变量必须先声明后使用。(√)

三、单项选择题。(每小题1分,共计20分)

1、在32位计算机中,一个字长所占的字节数为( c ) A. 1 B. 2 C. 4 D. 8

2、与十进制数511等值的十六进制数为( a ) A. 1FF B. 2FF C. 1FE D. 2FE

3、在计算机系统中,存储一个汉字的国标码所需要的字节数为( b ) A. 1 B. 2 C. 3 D. 4 4、+100的补码是( d )

A. 01100000 B. 00000001 C. 11111111 D. 01100100 5、在C语言中,下列说法中错误的是( d )

A. 函数定义可以分为两个部分:函数说明部分和函数体 B. 主函数可以调用任何非主函数

C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何函数开始执行

6、假设所有变量都是整型,则表达式(x=2,y=5,y++,x+y)的值是( b ) A. 7 B. 8 C. 6 D. 2

7、设a为5,执行下列计算后,b的值不为2的是( c ) A. b=a/2 B. b=6-(--a) C. b=a%2 D. b=a<3?3:2 8、在以下一组运算符中,优先级最高的运算符是( a ) A. % B. = C. <= D. &&

9、使用“scanf(“x=%f,y=%f”,&x,&y)”语句,要使x,y均为1.25,正确的输入是( c )

A. 1.25,1.25 B. 1.25 1.25 C. x=1.25,y=1.25 D.x=1.25 y=1.25 10、设x、y、z、t均为int型变量,则执行以下语句后,t的值为( b ) x=y=z=1;t=++x||++y&&++z;

A. 0 B. 1 C. 2 D.不定值

11、putchar函数可以向终端输出一个( d )

A.整型变量表达式值 B.字符串 C. 实型变量值 D.字符或字符型变量值 12、已有定义int a=-2;和输出语句:printf(“%8lx”,a);以下正确的叙述是( d )

A.整型变量的输出格式符只有%d一种

B.%x是格式符的一种,它可以适用于任何一种类型的数据 C.%x的输出类型为八进制

D.%8lx不是错误的格式符,其中数字8规定了输出字段的宽度

13、为了避免嵌套的if—else语句的二义性,C语言规定else总是与( c )组成配对关系。

A. 缩排位置相同的if B. 在其之前未配对的if C. 在其之前未配对的最近的if D. 同一行上的if 14、设a=5,b=6,c=7,d=8,m=2,n=2,则执行(m=a>b)&&(n=c>d)后n的值为( b ) A. 1 B. 2 C. 3 D. 4 15、执行以下语句后,Y的值为( a ) int x,y,z; x=y=z=0;

if(++x||++y&&++z) y=0; else y=1;

A. 0 B. 1 C. 2 D. 不确定 16、以下程序的运行结果是( c ) #include “stdio.h” main() {

int a=1;

if(a++>1) printf(“%d\\n”,a); else printf(“%d\\n”,a- -); }

A. 0 B. 1 C. 2 D. 3 17、下列语句中错误的是( b )

A. while(x=y) 5; B. do x++ while(x= =10); C. while(0) D. do 2;while(a= =b); 18、设有循环语句“for(i= -1;i<4;i++) i++;”,其循环体执行的次数是( c ) A.无限 B.0 C.3 D.4

19、循环语句while(!E)中的表达式!E等价于( d )

A. E!=0 B. E!=1 C. E= =1 D. E= =0 20、以下程序段 ( c ) x= -1; do

{x=x*x;}

while(!x);

A.是死循环 B.循环执行0次 C.循环执行一次 D.有语法错误 四、程序阅读题。(每小题1分,共计8分)

1、以下程序运行后的输出结果是( 3 ) main() {

int p=30;

printf(“%d\\n”,(p/3?p/10:p%3)); }

2、以下程序运行后的输出结果是( yes ) main() {

int a=1,b=3,c=5;

if(c=a+b) printf(“yes\\n”); else printf(“no\\n”); }

3、有以下程序,其运行后输出的结果是:( 1 ) main() {

int p,a=5;

if(p=a!0) printf(“%d\\n”,p); else printf(“%d\\n”,p+2); }

4、以下程序运行后的输出结果是( 20,0 ) main() {

int x=10,y=20,t=0; if(x= =y)t=x;x=y;y=t; printf(“%d,%d\\n”,x,y); }

5、若从键盘输入58,则以下程序输出的结果是( 585858 ) main() {

int a;

scanf(“%d”,&a);

if(a>50)printf(“%d”,a); if(a>40)printf(“%d”,a); if(a>30)printf(“%d”,a); }

6、以下程序运行后输出结果是( 132 ) main() {

int i=0,n=0,k=0; for(i=9;i<=11;i++)

switch(i/10) {

case 0:m++;n++;break; case 10:n++;break; default:k++;n++; }

printf(“%d%d%d\\n”,m,n,k); }

7、以下程序运行后的输出结果是( 17 ) main() {

int x=15;

while(x>10 && x<50) {

x++;

if(x/3) {x++;break;} else continue; }

printf(“%d\\n”,x); }

8、如下程序,若输入一组数据1 3 4 5 7 9 2 4 6 8 99,则其输出结果是 ( 1 2 3 4 5 6 7 8 9 99 ) # include main() {

int a[10]; int i,j,k,t;

printf(“请输入10个整数:\\n”);

for(i=0;i<10;i++) scanf(“%d”,&a[i]); for(i=0;i<10;i++) {

k=i;

for(j=i+1;j<10;j++) if(a[j]

printf(“最终数据是:\\n”); for(i=0;i<10;i++) printf(“M”,a[i]); printf(“\\n”); }

五、补充程序题。(每小题1分,共计6分)

1、以下程序的功能是计算s=1+12+123+12345,请补充完整。 main()

{

int t=0,s=0,i; for(i=1;i<=5;i++)

{t=i+( 10*t );s=s+t;} printf(“s=%d\\n”,s); }

2、以下程序的功能是输出如下形式的方阵,请补充完整。 13 14 15 16 9 10 11 12 5 6 7 8 1 2 3 4 main() {

int i,j,x;

for(j=4;j( <0 );j- -) {

for(i=1;i<=4;i++) {

x=(j-1)*4+( i ); printf(“M”,x);

}

printf(“\\n”); } }

3、以下程序实现输入10个整数,找出其中的最大值并输出,请补充完整。 # include main() {

int a[10],i=0,max=0;

printf(“请输入10个整数:\\n”); for(i=0;i<10;i++)

scanf(“%d”,( &a[i] )); max=a[0];

for(i=1;i<10;i++)

if( a[i]>max ) max=a[i]; printf(“Max=%d\\n”,max); }

4、下列程序完成输入一个实数,若该数大于等于0,则输出1,否则输出-1,要求用条件运算符求解,请补充完整。 # include main() {

double x; int y;

printf(“请输入X的值:”); scanf(“%lf”,&x);

y=( x>=0?1:-1 ); printf(“y=%d\\n”,y); }

六、编程题。(每小题1分,共计8分)

1、输入一个4X4的矩阵,输出该矩阵并求其对角线元素之和。 参考答案:

#include

main() {

int i=0,j=0,sum=0; int a[4][4]={0};

printf(\请输入16个整数:\\n\ for(i=0;i<4;i++) for(j=0;j<4;j++)

scanf(\

printf(\该矩阵为:\\n\ for(i=0;i<4;i++) {

for(j=0;j<4;j++)

printf(\ printf(\ }

for(i=0;i<4;i++) for(j=0;j<4;j++)

if(i==j ||i+j==3) sum+=a[i][j];

printf(\该矩阵对角线元素的和为:%d\\n\}

2、输入10个整数,用冒泡法进行排序。 参考答案:

# include

Main() {

int a[10]; int i,j,t;

printf(“请输入10个整数:\\n”); for(i=0;i<10;i++) scanf(“%d”,&a[i]);

for(i=0;i<10;i++)

for(j=0;j<10-i;j++)

if(a[j]>a[j+1]) {

t=a[j];a[j]=a[j+1];a[j+1]=t; }

printf(“这10个数依次是:\\n”);

for(i=0;i<10;i++) printf(“M”,a[i]); printf(“\\n”); }

3、编程输出从公元1000年至2000年间所有闰年的年号,每输出三个年号换一行。

参考答案:

#include

main() {

int i=0,j=0;

for(i=1000;i<=2000;i++) {

if(i%4==0 && i0!=0 || i@0==0) {

printf(\ j++;

if(j%3==0) {

printf(\ j=0; } } } }

4、输出所有的“水仙花”数。所谓“水仙花”数是指一个3位正整数,其各位数字立方和等于该数本身。 参考答案:

#include

main() {

int a,b,c,i;

for(i=111;i<=999;i++) {

a=i;

b=(i/10); c=i/100;

if(i==a*a*a+b*b*b+c*c*c) printf(\ } }

5、编程输出九九乘法表 参考答案:

# include

main() {

int i,j;

for(i=1;i<=9;i++) {

for(j=1;j<=i;j++)

printf(“- X -”,i,j,i*j); printf(“\\n”); } }

6、编程求1+2+3+…+100的和,要求使用三种循环分别进行编写。 参考答案: while循环编程

# include main() {

int i,sum=0; i=1;

while(i<=100) {

sum=sum+i; i=i+1; }

printf(“sum=%d”,sum); }

do while循环编程 # include main() {

int i,sum=0; i=1; do {

sum=sum+i; i=i+1;

}while(i<=100);

printf(“sum=%d”,sum); }

for循环编程

# include main() {

int i,sum=0;

for(i=1;i<=100;i++) sum=sum+i;

printf(“sum=%d”,sum); }

7、按托运规则,行李不超过50公斤时运费为0.15元/公斤,如果超过50公斤,则超过部分的运费为0,22元/公斤,现有行李W公斤,试编程计算所需运费。 参考答案:

#include

main() {

int weight; double money;

printf(\请输入行李的重量:\\n\ scanf(\

if(weight<50)

money=weight*0.15; else

money=50*0.15+(weight-50)*0.22;

printf(\你的行李%d公斤,应付运费:%.2f元\\n\

}

8、编程实现打印输出一个“*”符号构成的三角形图形。(图形如下) *

*** ***** ******* *********

参考答案:

# include main() {

int i,j,k;

for(i=1;i<=5;i++) {

for(j=1;j<=5-i;j++) printf(“ “); for(k=1;k<=2*i-1;k++) printf(“*”); printf(“\\n”); } }

一、填空题。(每空1分,共计10分) 二、判断题。(每小题2分,共计20分)

三、单项选择题。(每小题2分,共计20分) 四、程序阅读题。(每小题3分,共计15分) 五、补充程序题。(每空5分,共计15分) 六、编程题。(每小题15+5分,共计20分)

}

8、编程实现打印输出一个“*”符号构成的三角形图形。(图形如下) *

*** ***** ******* *********

参考答案:

# include main() {

int i,j,k;

for(i=1;i<=5;i++) {

for(j=1;j<=5-i;j++) printf(“ “); for(k=1;k<=2*i-1;k++) printf(“*”); printf(“\\n”); } }

一、填空题。(每空1分,共计10分) 二、判断题。(每小题2分,共计20分)

三、单项选择题。(每小题2分,共计20分) 四、程序阅读题。(每小题3分,共计15分) 五、补充程序题。(每空5分,共计15分) 六、编程题。(每小题15+5分,共计20分)

本文来源:https://www.bwwdw.com/article/tqia.html

Top