C语言练习作业及答案

更新时间:2023-12-07 11:46:01 阅读量: 教育文库 文档下载

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

习题一

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 int main() {

int x=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(\ return 0; }

运行结果 3 6 10

(2)#include int main() {

int n=123; int x,y,z; x=n/100; y=n0/10; z=n;

printf(\ return 0; }

运行结果 1,2,3

(3)#include int main() {

int x=10,y=6; printf(\ printf(\ printf(\ return 0; }

运行结果 0 1 1

(4)#include

int main() {

int x=10,y=6,z=3,s=0; s+=x; s+=y; s+=z;

printf(\ return 0; }

运行结果 19

(5)#include int main() {

int a=2,b=3;

float x=3.5,y=2.5;

printf(\ return 0; }

运行结果 3.5

(6)#include int main() {

int a=-100; unsigned b,c; long d=32768; float e=4.56; b=a; a=c=d;

printf(\a=e;

printf(\ return 0; }

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

(提示:%u表示以无符号整型的格式输出;%ld表示以长整型的格式输出) 运行结果 32768,100,32768,32768L 4,4.56

(7)#include int main() {

int i=1,j,k;

j=i++;printf(\ k=++i;printf(\ j=i--;printf(\ k=--i;printf(\ return 0; }

运行结果 j=1,i=2 k=3,i=3 j=3,i=2 k=1,i=1

(8)#include #define M(x) x*(x+1) int main() {

int a=2,b=3;

printf(\ return 0; }

运行结果

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

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

(2)输入三个整数,对它们进行从小到大排序,并输出排序后的结果。 (3)输入一个0-100的整数,若该数是偶数且是5的倍数,则输出“Y”,否则输出“N”。

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

(5)输入圆的半径r,计算并输出圆的周长和面积,要求将?定义为符号常量。

二、选择题

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

A) char

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) 请写出以下程序的运行结果

int main() {

int a = 5, b = 8;

float x = 34.5678, y = -567.123; char c = 'A';

long n = 1234567; unsigned u = 65535; printf(\ printf(\ printf(\ printf(\

printf(\ printf(\ printf(\

printf(\ %3.2s \\n\return(0); }

运行结果

(2) 用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=35.19,c1=?Q?,c2=?q?。问在键盘上如何输入?

int main() {

int a, b; float x, y; char c1,c2;

scanf(\ b=%d\ scanf(\ %f\ scanf(\

printf(\return(0); }

运行结果

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

int a,b,c;

scanf(\ printf(\

return(0); }

运行结果

(4) 下面程序的输出结果是什么? #include int main() {

int c; char d; 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 int main() {

int a=-1;long b=-2;float f=123.456;char c='a'; printf(\

printf(\

printf(\ printf(\

printf(\ return(0); }

运行结果

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

#include int main() {

int n,x1,x2,x3,y;

printf(\ scanf(\ x1 = n/100; x2 = n/10; x3 = n0;

y = x3*100+x2*10+x1; printf(\ return(0); }

运行结果

2、写程序

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

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

5c?(F?32)

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

(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 \main( ) { int c1=65,c2=66; printf(\; }

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_c C.$89 D. a+6

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

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

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

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

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

C. 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D. 同一个运算符号在不同的场合可以有不同的含义

一、程序题

1、阅读程序写运行结果 (1) int main()

{

float a = 2.5, b = 3.4; int c,d; c = (a>b); d = (c==0);

printf(\ %d \\n\return(0); }

运行结果 0 1

(2) int main()

{

int a,b,c,d; a = !3.1; printf(\

b = !'a'; b = !0; c = 1&&2; c = a&&2; d = a||2; d = a||c; return(0); } 运行结果 0 1 1 1 0 1 0

(3)

printf(\printf(\printf(\printf(\printf(\printf(\

#include int main() {

int op1,op2,result; char operato;

scanf(\ operato=getchar(); while(operato!='='){

scanf(\ 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(\ return(0); }

程序运行时,

输入2*3?4=,输出: 输入2+1/4=,输出:

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

(4)

#include int main() {

float a=2.5,b=3.4; int c,d; c=(a>b);

printf(\ d=(c==0);

printf(\ return(0); }

运行结果

(5)

#include int main() {

int testnum,remainder;

printf(\ scanf(\ remainder=testnum%2; if(remainder==0)

printf(\ else

printf(\ return(0); }

运行结果

(6)

#include int main() {

int i;

scanf(\ switch(i) {

case1:

case2:putchar('i');

case3:printf(\ default:printf(\

}

return(0);

}

运行结果

(7)下面程序运行时,分别输入?5?、?D?、?w?和?!?后的输出结果是什么?

#include int main() {

char c;

scanf(\ if(c>='0'&&c<='9') printf(\

else if(c>='A'&&c<='Z') printf(\ else if(c>='a'&&c<='z') printf(\ else

printf(\ return(0); }

运行结果

2、写程序

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

?2x3?y??x?1??2x?写程序实现,输入x值,输出y值。

(?5?x?0)(x?0)(0?x?10)

(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

100000元的部分,可提成7.5%;200000

要求:(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()

{int m=5,n=10;

printf(\}

A. 5,9 B.6,9 C. 5,10 D.6,10 4、逻辑运算符两侧的数据类型( )

A. 只能是0和1 B. 只能是0或非0正数 C. 只能是整型或字符型数据 D. 可以是任何类型的数据 5、下列关系表达式结果为假的是( )

A. 0!=1 B. 2<=8

C. (a=2*2)= =2 D. 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.0 D)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)

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

Top