C语言练习作业及答案.docx

上传人:b****1 文档编号:3122952 上传时间:2023-05-05 格式:DOCX 页数:20 大小:28.39KB
下载 相关 举报
C语言练习作业及答案.docx_第1页
第1页 / 共20页
C语言练习作业及答案.docx_第2页
第2页 / 共20页
C语言练习作业及答案.docx_第3页
第3页 / 共20页
C语言练习作业及答案.docx_第4页
第4页 / 共20页
C语言练习作业及答案.docx_第5页
第5页 / 共20页
C语言练习作业及答案.docx_第6页
第6页 / 共20页
C语言练习作业及答案.docx_第7页
第7页 / 共20页
C语言练习作业及答案.docx_第8页
第8页 / 共20页
C语言练习作业及答案.docx_第9页
第9页 / 共20页
C语言练习作业及答案.docx_第10页
第10页 / 共20页
C语言练习作业及答案.docx_第11页
第11页 / 共20页
C语言练习作业及答案.docx_第12页
第12页 / 共20页
C语言练习作业及答案.docx_第13页
第13页 / 共20页
C语言练习作业及答案.docx_第14页
第14页 / 共20页
C语言练习作业及答案.docx_第15页
第15页 / 共20页
C语言练习作业及答案.docx_第16页
第16页 / 共20页
C语言练习作业及答案.docx_第17页
第17页 / 共20页
C语言练习作业及答案.docx_第18页
第18页 / 共20页
C语言练习作业及答案.docx_第19页
第19页 / 共20页
C语言练习作业及答案.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言练习作业及答案.docx

《C语言练习作业及答案.docx》由会员分享,可在线阅读,更多相关《C语言练习作业及答案.docx(20页珍藏版)》请在冰点文库上搜索。

C语言练习作业及答案.docx

C语言练习作业及答案

习题一

1、C语言源程序最多可能由____ABCD____________部分组成?

A)预处理部分B)变量说明部分

C)函数原型声明部分D)函数定义部分

2、一个完整的C语言源程序最少必须有___C____。

A)若干个主函数B)若干个函数

C)且只能有一个主函数D)一个函数

3、C语言以函数为源程序的基本单位最主要有利于__B_____。

A)程序设计结构化B)程序设计模块化

C)程序设计简单化D提高程序设计有效性

4、要使得C语言编写的程序能够在计算机上运行并得出正确结果,必须要先经过______________B_______________________。

A)编辑和链接B)编译和链接

C)修改和运行D运行并输入数据

5、 一个C程序的执行是从______A______。

A)本程序的main函数开始,到main函数结束。

B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

C)本程序的main函数开始,到本程序文件的最后一个函数结束

D)本程序文件的第一个函数开始,到本程序main函数结束

6、 以下叙述正确的是__A______。

A)在C程序中,main函数必须位于程序的最前面

B)C程序的每行中只能写一条语句 

C)C语言本身没有输入输出语句 

D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误

7、以下叙述不正确的是___D_____。

A)一个C源程序可由一个或多个函数组成

B)一个C源程序必须包含一个main函数 

C)C程序的基本组成单位是函数 

D)在C程序中,注释说明只能位于一条语句的后面

8、C语言规定:

在一个源程序中,main函数的位置是___A_____。

A)必须在最开始 

B)必须在系统调用的库函数的后面

C)可以任意 

D)必须在最后

习题二

一、程序题

1、阅读程序写运行结果

(1)#include

intmain()

{

intx=10,y=6,z=3,t;

if(x>y){t=x;x=y;y=t;}

if(y>z){t=y;y=z;z=t;}

if(x>y){t=x;x=y;y=t;}

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

return0;

}

运行结果3610

(2)#include

intmain()

{

intn=123;

intx,y,z;

x=n/100;

y=n%100/10;

z=n%10;

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

return0;

}

运行结果1,2,3

(3)#include

intmain()

{

intx=10,y=6;

printf("%d\n",!

x);

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

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

return0;

}

运行结果0

1

1

(4)#include

intmain()

{

intx=10,y=6,z=3,s=0;

s+=x;

s+=y;

s+=z;

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

return0;

}

运行结果19

(5)#include

intmain()

{

inta=2,b=3;

floatx=3.5,y=2.5;

printf("%f\n",(float)(a+b)/2+(int)x%(int)y);

return0;

}

运行结果3.5

(6)#include

intmain()

{

inta=-100;

unsignedb,c;

longd=32768;

floate=4.56;

b=a;

a=c=d;

printf("%d,%u,%u,%ld\n",a,b,c,d);

a=e;

printf("%d,%f\n",a,e);

return0;

}

本题假设int型数据占两个字节。

(提示:

%u表示以无符号整型的格式输出;%ld表示以长整型的格式输出)

运行结果32768,100,32768,32768L

4,4.56

(7)#include

intmain()

{

inti=1,j,k;

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

k=++i;printf("k=%d,i=%d\n",k,i);

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

k=--i;printf("k=%d,i=%d\n",k,i);

return0;

}

运行结果j=1,i=2

k=3,i=3

j=3,i=2

k=1,i=1

(8)#include

#defineM(x)x*(x+1)

intmain()

{

inta=2,b=3;

printf("%d\n",M(1+a+b));

return0;

}

运行结果

2、仿照本章的例题写程序

(1)输入三个整数,计算并输出它们的平均值。

(2)输入三个整数,对它们进行从小到大排序,并输出排序后的结果。

(3)输入一个0-100的整数,若该数是偶数且是5的倍数,则输出“Y”,否则输出“N”。

(4)输入两个英文小写字母,输出其中的较大字母、较小字母,以及较大字母和较小字母之间间隔的字符个数。

(5)输入圆的半径r,计算并输出圆的周长和面积,要求将

定义为符号常量。

二、选择题

1、在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为____A___。

 A) char

B) char=int 

C) char

D)char=int=long int<=float

2、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)

的值是____B___。

A) 7  B) 8   C)6   D)2 

3、下面四个选项中,均是不合法的用户标识符的选项是_C______。

A)A       B)float     C)b-a       D)_123 

P_0       la0         goto        struct 

do        _A          int         type 

4、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符____C___。

A)必须为字母   

B)必须为下划线   

C)必须为字母或下划线

D)可以是字母、数字和下划线中任一种字符

习题三

一、程序题

1、阅读程序写运行结果

(1)请写出以下程序的运行结果

intmain()

{

inta=5,b=8;

floatx=34.5678,y=-567.123;

charc='A';

longn=1234567;

unsignedu=65535;

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

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

printf("%10f%-10f\n",x,y);

printf("%e%10.2e\n",x,y);

printf("%c%d%o%x\n",c,c,c,c);

printf("%ld%lo%lx%x\n",n,n,n,n);

printf("%u%d%o%x\n",u,u,u,u);

printf("%s%3.2s\n","CHINA","CHINA");

return(0);

}

运行结果

(2)用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=35.19,c1=‘Q’,c2=‘q’。

问在键盘上如何输入?

intmain()

{

inta,b;

floatx,y;

charc1,c2;

scanf("a=%db=%d",&a,&b);

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

scanf("%c%c",&c1,&c2);

printf("%d%d%f%f%c%c\n",a,b,x,y,c1,c2);

return(0);

}

运行结果

(3)下面程序运行时从键盘上输入123445216750,程序运行结果是什么?

#include

intmain()

{

inta,b,c;

scanf("%2d%3d%*2d%3d",&a,&b,&c);

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

return(0);

}

运行结果

(4)下面程序的输出结果是什么?

#include

intmain()

{

intc;

chard;

c=66;

d='B';

putchar(c);putchar(d);putchar('B');putchar(66);

c=68;

d='D';

putchar(c);putchar(d);putchar('B');putchar(66);

return(0);

}

运行结果

(5)下面程序的输出结果是什么?

#include

intmain()

{

inta=-1;longb=-2;floatf=123.456;charc='a';

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

printf("b=%1d,b=%1o,b=%1x,b=%1u\n",b,b,b,b);

printf("f=%f,f=%7.2f,f=%-7.2f\nf=%e,f=%g\n",f,f,f,f,f);

printf("c=%c,c=%3c,c=%-3c,c=%d,c=%c\n",c,c,c,'a',65);

printf("s1=%s,s2=%7.3s,s3=%-7.3s\n","12345","ABCD","12345");

return(0);

}

运行结果

(6)下面程序的输出结果是什么?

#include

intmain()

{

intn,x1,x2,x3,y;

printf("Pleaseinputnumbern:

");

scanf("%3d",&n);

x1=n/100;

x2=n/10%10;

x3=n%100;

y=x3*100+x2*10+x1;

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

return(0);

}

运行结果

2、写程序

(1)设圆柱底面圆半径r=1.5,圆柱高h=3,求底面圆周长、圆柱侧面积、圆柱面积、圆柱体积。

(2)输入一个华氏温度,要求输出摄氏温度。

公式为

要求输出要有文字说明,保留两位小数。

(3)若a=3,b=4,c=5,x=1.2,y=2.4,z=—3.6,u=33278,n=126765,c1=’a’,c2=’b’,编写程序输出以下的输出结果。

a=▁3▁▁b=▁4▁▁c=▁5

x=1.200000,y=2.400000,z=-3.6000000

x+y=▁3.60▁▁y+z=-1.20▁▁=-2.40

u=▁33278▁▁n=▁▁▁▁126765

c1=’a’其ASCII码值为97

c2=’b’其ASCII码值为98.

(4)编写程序,读入一个字母,输出与之对应的ASCII码,输入输出都要有相应的文字提示。

二、选择题

1、已知’A’的ASCII代码是65,以下程序的输出结果是(B)

#include "stdio.h"

main()

{int c1=65,c2=66;

printf("%c, %c",c1,c2);

}

A.因输出格式不合法,输出错误信息B.65,66

C.A,B D.65,66

2、若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句组是(B)

A.a=a+b,b=a-b,a=a-b;   B.t=a,a=b,b=t;

C.a=t,t=b,b=a; D.t=b;b=a;a=t;

3、若k是整型变量,则以下程序段的输出是(D)

k=-8567;

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

A.输出格式不正确 B.输出为|008567|

C.输出为|8567| D.输出为|-8567|

4、下列可作变量的标识符是(B)

A.3rt B.je_cC.$89 D.a+6

5、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符(A)

A.必须为字母或下划线B.必须为下划线

C.必须为字母

D.可以是字母、数字和下划线中的任一种字符

6、C语言并不是非常严谨的算法语言,在以下关于C语言的不严谨的叙述中,错误的说法是(A)

A.大写字母和小写字符的意义相同

B.有些不同类型的变量可以在一个表达式中运算

C.在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型

D.同一个运算符号在不同的场合可以有不同的含义

一、程序题

1、阅读程序写运行结果

(1)intmain()

{

floata=2.5,b=3.4;

intc,d;

c=(a>b);

d=(c==0);

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

return(0);

}

运行结果01

(2)intmain()

{

inta,b,c,d;

a=!

3.1;printf("%d\n",a);

b=!

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

b=!

0;printf("%d\n",b);

c=1&&2;printf("%d\n",c);

c=a&&2;printf("%d\n",c);

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

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

return(0);

}

运行结果0

1

1

1

0

1

0

(3)

#include

intmain()

{

intop1,op2,result;

charoperato;

scanf("%d",&op1);

operato=getchar();

while(operato!

='='){

scanf("%d",&op2);

switch(operato){

case'+':

result=op1+op2;break;

case'-':

result=op1-op2;break;

case'*':

result=op1*op2;break;

case'/':

result=op1/op2;break;

default:

result=0;

}

op1=result;

operato=getchar();

}

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

return(0);

}

程序运行时,

输入2*3−4=,输出:

输入2+1/4=,输出:

输入1+2*5−10/2=,输出:

(4)

#include

intmain()

{

floata=2.5,b=3.4;

intc,d;

c=(a>b);

printf("%d",c);

d=(c==0);

printf("%d",d);

return(0);

}

运行结果

(5)

#include

intmain()

{

inttestnum,remainder;

printf("Enteryournumbertobetested.\n");

scanf("%d",&testnum);

remainder=testnum%2;

if(remainder==0)

printf("Thenumberiseven.\n");

else

printf("Thenumberisodd.\n");

return(0);

}

运行结果

(6)

#include

intmain()

{

inti;

scanf("%d",&i);

switch(i)

{

case1:

case2:

putchar('i');

case3:

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

default:

printf("OK!

\n");

}

return(0);

}

运行结果

(7)下面程序运行时,分别输入‘5’、‘D’、‘w’和‘!

’后的输出结果是什么?

#include

intmain()

{

charc;

scanf("%c",&c);

if(c>='0'&&c<='9')

printf("0-9\n");

elseif(c>='A'&&c<='Z')

printf("A-Z\n");

elseif(c>='a'&&c<='z')

printf("a-z\n");

else

printf("othercharacter\n");

return(0);

}

运行结果

2、写程序

(1)有一分段函数如下:

写程序实现,输入x值,输出y值。

(2)编写程序实现,输入一个整数,判断它能否被3、5、7整除,并输出以下信息之一:

1)同时被3、5、7整除;

2)能被其中两个数整除(要指出是哪两个数);

3)能被其中一个数整除(要指出是哪个数);

4)不能被3、5、7中任意一个整数整除。

(3)某幼儿园收2岁到6岁的儿童,2、3岁儿童进小班,4岁儿童进中班,5、6岁儿童进大班,用switch语句编程实现,输入一个儿童的年龄,输出该儿童应当进入的班级。

(4)编程实现,输入4个整数,按从小到大的顺序输出。

(5)给一个不多于5位的正整数,要求:

①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字,例如原数为321,应输出123。

(6)企业发放的奖金根据利润提成。

利润I低于或等于10万元的,奖金可提10%;利润高于10万元,低于20万元(100000

高于20万元的部分按5%提成;400000

从键盘输入当月利润I,求应发奖金总数。

要求:

(1)用if语句编程序;

(2)用switch语句编程序。

(7)编写程序实现功能:

输入整数a和b,若a2+b2>100,则输出a2+b2之和的百位以上的数字,否则直接输出a2+b2的和。

(8)编写程序判断输入的正整数是否既是5又是7的整数倍。

若是则输出“yes”,否则输出“no”。

二、单项选择题

1、“基本结构”不具有以下特点()

A.只有一个入口,只有一个出口B.没有死循环

C.没有永远执行不到的语句D.不允许退出循环

2、在流程图中,菱形框表示的操作是()

A.数据的输入输出 B.程序的开始

C.条件判断D.赋值

3、以下程序的运行结果是()

#include

main()

{intm=5,n=10;

printf("%d,%d\n",m++,--n);

}

A.5,9B.6,9

C.5,10D.6,10

4、逻辑运算符两侧的数据类型()

A.只能是0和1B.只能是0或非0正数

C.只能是整型或字符型数据D.可以是任何类型的数据

5、下列关系表达式结果为假的是()

A.0!

=1B.2<=8

C.(a=2*2)==2D.y=(2+2)==4

6、下列运算符中优先级最低的是()

A.?

:

B.+=

C.>=D.==

5、下面四个选项中,均是合法整型常量的选项是_______。

A)160       B)-0xcdf    C)-01       D)-0x48a 

  -0xffff     0la         986,012     2e5 

  011         0xe         0668         0x 

6、下面正确的字符常量是_______。

 

A)“c”   B)‘\\”

C) ‘W’ D) ‘’

7、若有代数式3ae/bc,则不正确的c语言表达式是_______。

A)a/b/c*e*3    B)  3*a*e/b/c 

C)3*a*e/b*c     D)a*e/c/b*3 

8、sizeof(float)是_______。

A)一个双精度型表达式 

B)一个整型表达式

C) 一个单精度型表达式 

D)一个不合法的表达式

9、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为_______。

A)int    B)float    C)double    D)不确定

10、在C语言中,char型数据在内存中的存储形式是_______。

 A)补码 B)反码

 C)原码 D)ASCII码

11、设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是_______。

A)n=(n*100+0.5)/100.0    B)m=n*100+0.5,n=m/100.0 

C)n=n*100+0.5/100.0D)n=(n/100+0.5)*100.0 

12、设以下变量均为int类型,则值不等于7的表达式是。

A)(x=y=6,x+y,x+1)         B)(x=y=6,x+y,y+1) 

C)(x=6,x+1,y=6,x+y)    D)(y=6,y+1,x=y,x+1)

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

当前位置:首页 > 教学研究 > 教学计划

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

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