大学C语言设计教程习题.docx

上传人:b****2 文档编号:11520565 上传时间:2023-06-01 格式:DOCX 页数:70 大小:46.46KB
下载 相关 举报
大学C语言设计教程习题.docx_第1页
第1页 / 共70页
大学C语言设计教程习题.docx_第2页
第2页 / 共70页
大学C语言设计教程习题.docx_第3页
第3页 / 共70页
大学C语言设计教程习题.docx_第4页
第4页 / 共70页
大学C语言设计教程习题.docx_第5页
第5页 / 共70页
大学C语言设计教程习题.docx_第6页
第6页 / 共70页
大学C语言设计教程习题.docx_第7页
第7页 / 共70页
大学C语言设计教程习题.docx_第8页
第8页 / 共70页
大学C语言设计教程习题.docx_第9页
第9页 / 共70页
大学C语言设计教程习题.docx_第10页
第10页 / 共70页
大学C语言设计教程习题.docx_第11页
第11页 / 共70页
大学C语言设计教程习题.docx_第12页
第12页 / 共70页
大学C语言设计教程习题.docx_第13页
第13页 / 共70页
大学C语言设计教程习题.docx_第14页
第14页 / 共70页
大学C语言设计教程习题.docx_第15页
第15页 / 共70页
大学C语言设计教程习题.docx_第16页
第16页 / 共70页
大学C语言设计教程习题.docx_第17页
第17页 / 共70页
大学C语言设计教程习题.docx_第18页
第18页 / 共70页
大学C语言设计教程习题.docx_第19页
第19页 / 共70页
大学C语言设计教程习题.docx_第20页
第20页 / 共70页
亲,该文档总共70页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

大学C语言设计教程习题.docx

《大学C语言设计教程习题.docx》由会员分享,可在线阅读,更多相关《大学C语言设计教程习题.docx(70页珍藏版)》请在冰点文库上搜索。

大学C语言设计教程习题.docx

大学C语言设计教程习题

第一章习  题

一、选择题

1.以下叙述不正确的是()

A.在C程序中,语句之间必须要用分号";"分隔

B.若a是实型变量,C程序中a=10是正确的,因为实型变量中允许存放整型数

C.在C程序中,无论是整数还是实数都能正确无误地表示

D.在C程序中,%是只能用于整数运算的运算符

2.一个C语言程序总是从()开始执行。

A.主过程B.主函数

C.子程序D.主程序

3.一个完整的可运行的C源程序中()。

A.可以有一个或多个主函数B.必须有且仅有一个主函数

C.可以没有主函数D.必须有主函数和其他函数

4.构成C语言源程序的基本单位是()。

A.子程序B.过程C.文本D.函数

5.以下说法中正确的是()

A.C语言程序总是从第一个定义的函数开始执行

B.在C语言程序中,要调用的函数必须放在main()函数中定义

C.C语言程序总是从main()函数开始执行

D.C语言程序中的main()函数必须放在程序的开始部分

6.C语言规定,一个C源程序的主函数名必须为()。

A.programB.includeC.mainD.function

7.下列说法正确的是()。

A.在书写C语言源程序时,每个语句以逗号结束

B.注释时,“/”和“*”号间可以有空格

C.无论注释内容的多少,在对程序编译时都被忽略

D.C程序每行只能写一个语句

8.在VisualC++6.0开发环境下,C程序按工程(project)进行组织,每个工程可包括(  )C/CPP源文件,但只能有(  )main函数。

A.1个B.2个

C.3个D.1个以上(含1个)

9.C语言源程序文件的后缀是( ),经过Compile后,生成文件的后缀是( ),经过Build后,生成文件的后缀是( )。

A..objB..exeC..cD..doc

10.C语言的程序一行写不下时,可以()

A)用逗号换行B)用分号换行

C)在任意一空格处换行D)用回车符换

第二章习  题

一、选择题

1.以下不正确的C语言标识符是()。

A.ABCB.abcC.a_bcD.ab.c

2.C语言中最基本的非空数据类型包括()。

A.整型、浮点型、无值型B.整型、字符型、无值型

C.整型、浮点型、字符型D.整型、浮点型、双精度型、字符型

3.若有定义:

inta=7;floatx=2.5;y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是:

()。

A.2.500000B.2.750000C.3.500000D.0.000000

4.C语言中运算对象必须是整型的运算符是()。

A.%B./C.=D.〈=

5.若已定义x和y为int类型,则执行了语句x=1;y=x+3/2;后y的值是()。

A.1B.2C.2.0D.2.5

6.若x,y,z均为int型变量,则执行以下语句后的输出为()。

x=(y=(z=10)+5)-5;

printf("x=%d,y=%d,z=%d\n",x,y,z);

y=(z=x=0,x+10);

printf("x=%d,y=%d,z=%d\n",x,y,z);

A.X=10,Y=15,Z=10B.X=10,Y=10,Z=10

X=0,Y=10,Z=0X=0,Y=10,Z=10

C.X=10,Y=15,Z=10D.X=10,Y=10,Z=10

X=10,Y=10,Z=0X=0,Y=10,Z=0

7.若有以下程序段

inta=1,b=2,c;

c=1.0/b*a;

则执行后,c的值是()。

A.0B.0.5C.1D.2

8.能正确表示逻辑关系:

“a≥10或a≤0”的C语言表达式是()。

A.a>=10ora<=0B.a>=0|a<=10

C.a>=10&&a<=0D.a>=10||a<=0

9.下列字符序列中,不可用作C语言标识符的是()。

A.xds426B.No.1C._okD.zwd

10.在printf()函数中,反斜杠字符'\'表示为()。

A.\'B.\0C.\nD.\\

11.已知有变量定义:

inta;charc;用scanf(“%d%c”,&a,&c);语句给a和c输入数据,使30存入a,字符‘b’存入c,则正确的输入是()。

A.30’b’<回车>B.30b<回车>

C.30<回车>b<回车>D.30b<回车>

12.设先有定义:

inta=10;

则表达式a+=a*=a的值为()。

A.10B.100C.1000D.200

13.设先有定义:

inta=10;

则表达式(++a)+(a--)的值为()。

A.20B.21C.22D.19

14.有如下程序

#include

main()

{

inty=3,x=3,z=1;

printf("%d%d\n",(++x,y++),z+2);

} 

运行该程序的输出结果是()。

A.34B.42C.43D.33

15.假定x、y、z、m均为int型变量,有如下程序段:

x=2;y=3;z=1;

m=(y

y:

x;

m=(z

m:

y;

则该程序运行后,m的值是()。

A.4B.3C.2D.1

16.以下选项中合法的字符常量是()。

A."B"B.'\010'C.68D.D

17.设x=3,y=4,z=5,则表达式((x+y)>z)&&(y==z)&&x||y+z&&y+z的值为

A.0B.1C.2D.3

18.如果a=1,b=2,c=3,d=4,则条件表达式a

a:

c

c:

d的值为()。

A.1B.2C.3D.4

19.设intm=1,n=2;则m++==n;的结果是()。

A.0B.1C.2D.3

二、填空题

1.与乘法运算具有相同优先级的算术运算符是。

2.在具有嵌套括号的算术表达式中,____括号首先被计算。

1.表达式10/3的结果是;10%3的结果是。

2.执行语句:

inta=12;a+=a-=a*a;后的值是。

3.以下语句的输出结果是。

shortb=65535;

printf("%d",b);

4.以下程序的执行结果是。

#include

main()

{

inta,b,x;

x=(a=3,b=a--);

printf("x=%d,a=%d,b=%d\n",x,a,b);

}

5.以下程序的执行结果是。

#include

main()

{

floatf1,f2,f3,f4;

intm1,m2;

f1=f2=f3=f4=2;

m1=m2=1;

printf("%d\n",(m1=f1>=f2)&&(m2=f3

}

6.以下程序的执行结果是。

#include

main()

{

floatf=13.8;

intn;

n=(int)f%3;

printf("n=%d\n",n);

}

三、编程题

1.请编写一个这样的程序:

请求用户输入两个数,读取两个数后打印它们的和、乘积、差、商及余数。

2.输入一个3位整数,求出该数每个位上的数字之和。

如123,每个位上的数字和就是1+2+3=6。

第三章习  题

一、选择题

1.结构化程序模块不具有的特征是()。

A.只有一个入口和一个出口

B.要尽量多使用goto语句

C.一般有顺序、选择和循环3种基本结构

D.程序中不能有死循环

2.程序段如下:

则以下说法中不正确的是:

#include

main()

{

intk=2,;

while(k<7)

{

if(k%2){

k=k+3;printf(“k=%d\n”,k);continue;

}

k=k+1;

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

}

}

A.k=k+3;执行一次B.k=k+1;执行2次

C.执行后k值为7D.循环体只执行一次

3.C语言中,逻辑“真”等价于()。

A.整数1B.整数0C.非0数D.TRUE

4.以下4条语句中,有语法错误的是()。

A.if(a>b)m=a;B.if(a

C.if((a=b)>=0)m=a;D.if((a=b;)>=0)m=a;

5.若i,j均为整型变量,则以下循环()。

for(i=0,j=2;j=1;i++,j--)

printf("%5d,%d\n",i,j);  

A.循环体只执行一次B.循环体执行二次

C.是无限循环D.循环条件不合法

6.程序段如下:

则以下说法中正确的是:

intk=-20;

while(k=0)k=k+1;

A.while循环执行20次B.循环是无限循环

C.循环体语句一次也不执行D.循环体语句执行一次

7.以下程序段,执行结果为()。

a=1;

do

{

a=a*a;

}while(!

a);

A.循环体只执行一次B.循环体执行二次

C.是无限循环D.循环条件不合法

8.C语言中while与do~while语句的主要区别是()。

A.do~while的循环体至少无条件执行一次

B.do~while允许从外部跳到循环体内 

C.while的循环体至少无条件执行一次

D.while的循环控制条件比do~while的严格

9.语句while(!

a);中条件等价于()。

A.a!

=0B.~aC.a==1D.a==0

10.分析以下程序,下列说法正确的是。

main()

{

intx=0,a=0,b=0;

if(x==a+b)printf("****\n");

elseprintf("####\n");

}

A.有语法错,不能通过编译B.通过编译,但不能连接

C.输出****D.输出####

11.以下程序的运行结果为()。

#include

main()

{

inti=1,sum=0;

while(i<=100)

sum+=i;

i++;

printf("1+2+3+...+99+100=%d",sum);

}

A.5050B.1C.0D.程序陷入死循环

12.以下程序的运行结果为()。

#include

main()

{

intsum,pad;

sum=pad=5;

pad=sum++;

pad++;

++pad;

printf("%d\n",pad);

}

A.7B.6C.5D.4

13.以下程序的运行结果为()。

#include

main()

{

inta=2,b=10;

printf("a=%%d,b=%%d\n",a,b);

}

A.a=%2,b=%10B.a=2,b=10

C.a=%%d,b=%%dD.a=%d,b=%d

14.为了避免嵌套的if-else语句的二义性,C语言规定else总是()。

A.与缩排位置相同的if组成配对关系

B.与在其之前未配对的if组成配对关系

C.与在其之前未配对的最近的if组成配对关系

D.与同一行上的if组成配对关系

15.对于for(表达式1;;表达式3)可理解为()。

A.for(表达式1;0;表达式3)

B.for(表达式1;1;表达式3)

C.for(表达式1;表达式1;表达式3)

D.for(表达式1;表达式3;表达式3)

二、填空题

1.是算法的图形化表示。

2.在流程图中,符号表示了各步骤执行的顺序。

3.结束框表示了每个算法的和

4.若a=5,b=6,c=7,d=8,则表达式d=a/2&&b==c||!

a的值为

5.定义intx=10,y,z;执行y=z=x;x=y==z后,变量x的值为。

6.下面程序的功能是计算n!

#include

main()

{

inti,n;

longp;

printf("Pleaseinputanumber:

\n");

scanf("%d",&n);

p=      ;

for(i=2;i<=n;i++)

       ;

printf("n!

=%ld",p);

}

7.投票表决器:

输入Y、y,打印agree

输入N、n,打印disagree

输入其他,打印lose

main()

{

charc;

scanf("%c",&c);

{

case‘Y’:

case‘y’:

printf(“agree”);;

case‘N’:

case‘n’:

printf(“disagree”);;

:

printf(“lose”);

}

8.准备客票。

某铁路线上共10个车站,问需要准备几种车票?

main()

{inti,j,station,total=0;

printf("输入车站数:

");

scanf("%d",&station);

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

for(j=;j<=station;j++)

total=;

printf("车票种类=%d\n",total);

}

9.下面程序的功能是:

从键盘上输入若干学生的成绩,统计并输出最高和最低成绩,当输入负数时结束输入。

#include

main()

{

floatscore,max,min;

printf("Pleaseinputonescore:

\n");

scanf("%f",&score);

max=min=score;

while(      )

{

if(score>max)max=score;

if(      )

min=score;

printf("Pleaseinputanotherscore:

\n");

scanf("%f",&score);

}

printf("\nThemaxscoreis%f\nTheminscoreis%f",max,min);

}

10.打印出以下图形

*

***

*****

*******

*****

***

*

main()

{

inti,j,k;

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

{for(j=0;j<=2-i;j++)printf("");

for(k=0;k<=;k++)printf("*");

}

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

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

printf("");

for(k=0;k<=;k++)

printf("*");

printf("\n");

}

}

11.下面程序的功能是:

计算y=

…的值。

要求从键盘上输入x的值,精度控制在0.00001内。

#include

#include

main()

{

floatx,y=0,fz=-1,fm=-1,temp=1;

printf("Pleaseinputthevalueofx:

\n");

scanf("%f",&x);

while(      )

{

fz=      ;

fm=fm+2;

temp=fz/fm;

y+=temp;

}

printf("\ny=%f",y);

}

12.下面的程序完成两个数的四则运算。

用户输入一个实现两个数的四则运算的表达式,程序采用switch语句对其运算进行判定后执行相应的运算并给出结果。

#include

main()

{

floatx,y;

charop;

printf("PleaseinputExpression:

");

scanf("%f%c%f",&x,&op,&y);

{

case'+':

printf("%g%c%g=%g\n",      _);

      ;

case'-':

printf("%g%c%g=%g\n",x,op,y,x-y);

break;

case'*':

printf("%g%c%g=%g\n",x,op,y,x*y);

break;

case'/':

if(      )

printf("DivisionError!

\n");

else

printf("%g%c%g=%g\n",x,op,y,x/y);

break;

default:

printf("ExpressionError!

\n");

}

}

三、编程题

1.写一程序求y值(x值由键盘输入)。

2.给出三角形的三边a、b、c,求三角形的面积。

(应先判断a、b、c三边是否能构成一个三角形)

3.有一函数

请编程序计算y的值(x的值由键盘输入)。

4.某幼儿园只收2~6岁的小孩,2~3岁编入小班,4岁编入中班,5~6岁编入大班,编制程序实现每输入一个年龄,输出该编入什么班。

5.输入一元二次方程的3个系数a、b、c,求出该方程所有可能的根。

6.一个灯塔有8层,共有765盏灯,其中每一层的灯数都是其相邻上层的两倍,求最底层的灯数。

7.求

(即求1!

+2!

+3!

+...+20!

)。

8.一张10元票面的纸钞兑换成1元、2元或5元的票面,问共有多少种不同的兑换方法?

9.一个数如果恰好等于它的因子之和,这个数就称为“完数”。

例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。

编程序找出1000之内的所有完数,并按下面格式输出其因子:

6itsfactorsare1,2,3

10.编程打印出所有的“水仙花数”。

所谓水仙花数:

是指一个三位数,其各位数字的立方之和等于该数。

11.如果一个数等于其所有真因子(不包括其本身)之和,则该数为完数,例如,6的因子有1、2、3,且6=1+2+3,故6为完数,求2~1 000中的完数。

12.两个乒乓球队进行比赛,各出三人,甲队为A、B、C三人,乙队为X、Y、Z三人,已知抽签决定比赛名单。

有人向队员打听比赛的名单,A说他不和X比,C说他不和X、Z比,请编程序找出三对赛手的名单。

13.将4~100中的偶数分解成两个素数之和,每个数只取一种分解结果。

如100可分解为3和97、或为11和89、或为17和83等,但我们只取第一种分解即可。

14.一个自然数平方的末几位与该数相同时,称该数为同构数。

例如,252=625,则25为同构数。

编程求出1~1 000中所有的同构数。

15.两位数13和62具有很有趣的性质:

把它们个位数字和十位数字对调,其乘积不变,即13*62=31*26。

编程序求共有多少对这种性质的两位数(个位与十位相同的不在此列,如11、22,重复出现的不在此列,如13*62与62*13)。

第四章习  题

一、选择题

1.C语言中函数形参的缺省存储类型是()。

A.静态(static)B.自动(auto)

C.寄存器(register)D.外部(extern)

2.在C语言中,当函数调用时()。

A.实参和形参各占一个独立的存储单元

B.实参和形参共用存储单元

C.可以由用户指定实参和形参是否共用存储单元

D.由系统自动确定实参和形参是否共用存储单元

3.如果在一个函数的复合语句中定义了一个变量,则该变量()。

A.只在该符合语句中有效,在该符合语句外无效

B.在该函数中任何位置都有

C.在本程序的原文件范围内均有效

D.此定义方法错误,其变量为非法变量

4.函数调用语句function((exp1,exp2),18)中含有的实参个数为()。

A.0B.1C.2D.3

5.下面函数返回值的类型是()。

square(floatx)

{

returnx*x;

}

A.与参数x的类型相同B.void型C.无法确定D.int型

6.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是。

A.float型B.int型C.long型D.double型

7.C语言规定,程序中各函数之间()。

A.不允许直接递归调用,也不允许间接递归调用

B.允许直接递归调用,但不允许间接递归调用

C.不允许直接递归调用,但允许间接递归调用

D.既允许直接递归调用,也允许间接递归调用

8.一个函数返回值的类型取决于()。

A.return语句中表达式的类型B.调用函数时临时指定

C.定义函数时指定或缺省的函数类型D.调用该函数的主调函数的类型

9.以下叙述中正确的是()。

A.全局变量的作用域一定比局部变量的作用域范围大

B.静态(static)类别变量的生存期贯穿于整个程序的运行期间

C.函数的形参都属于全局变量

D.未在定义语句中赋初值的auto变量和static变量的初值都是随机值

10.下面叙述中,错误的是()。

A.函数的定义不能嵌套,但函数调用可以嵌套

B.为了提高可读性,编写程序时应该适当使用注释

C.变量定义时若省去了存储类型,系统将默认其为静态型变量

D.函数中定义的局部变量的作用域在函数内部

11.在一个源程序文件中定义的全局变量的有效范围为()。

A.一个C程序的所有源程序文件B.该源程序文件的全部范围

C.从定义处开始到该源程序文件结束D.函数内全部范围

12.某函数在定义时未指明函数返回值类型,且函数中没有return语句,现若调用该函数,则正确的说法是()。

A.没有返回值B.返回一个用户所希望的值

C.返回一个

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2