当前位置:文档之家› C语言程序设计1-4、12章习题解答

C语言程序设计1-4、12章习题解答

C语言程序设计1-4、12章习题解答
C语言程序设计1-4、12章习题解答

第1章C语言程序设计概述

1.1一个C程序的执行是从 A 。

A.从main()函数开始,直到main()函数结束

B.第一个函数开始,直到最后一个函数结束

C.第一个语句开始,直到最后一个语句结束

D.main()函数开始,直到最后一个函数结束

1.2在C程序中,main()的位置 C 。

A.必须作为第一个函数B.必须作为最后一个函数

C.可以任意D.必须放在它所调用的函数之后

1.3C语言源程序的基本单位是 B 。

A.过程 B.函数 C.子程序 D.标识符

1.4一个C源程序有且仅有一个一个函数和__零个或多个_____个其他函数。

1.5C语言源程序的语句分隔符是__分号___。

1.6C语言开发的四个步骤是_编辑源程序→对源程序进行编译→与库函数连接→运行

目标程序__ 。

1.7C语言有哪些主要特点?

C主要特点有:

1.C语言简洁、紧凑,使用方便、灵活;

2.运算符丰富;

3.数据类型丰富;

4.C语言是结构化语言;

5.语法限制不太严格,程序设计自由度大;

6.可直接与机器硬件打交道,直接访问内存地址;

7.生成的目标代码质量高,程序执行效率高;

8.C语言适用范围广,可移植性好。

1.8简述C编译和运行的基本方法。

略。

1.9常用的集成开发工具有哪些?各有什么特点?

略。

1.10编写一个程序,在屏幕上输出以下内容:

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

* You are welcome! *

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

#include

void main( ) /*主函数 */

{ /*函数体开始*/

printf ("***************************\n"); /*输出语句*/

printf ("* You are welcome! *\n");

printf ("***************************\n");

}

1.11 编写一个C程序,输入a、b、c 3个值,输出其中最大者。

#include

void main( ) /* 主函数*/

{

float max(float x,float y); /* 对被调用函数max的声明 */

float a,b,c,d,result; /*声明实型变量a、b、c */

printf("a,b,c="); /*输出提示信息a,b,c= */

scanf("%f%f%f",&a,&b,&c); /*输入变量a,b和c的值*/

d=max(a,b); /*调用max函数,将得到的返回值赋给d */

result=max(c,d); /*调用max函数,将得到的返回值赋给result */ printf("max=%f\n",result); /*输出result的值*/

}

float max(float x,float y) /* 定义max函数,函数值为实型,形式参数x,y为实型*/ {

float z; /* max函数中的声明部分,声明本函数中用到的变量z为实型*/

if(x>y)

z=x; /*如果x>y ,则将x 值赋给z */

else

z=y; /*否则将y 值赋给z */

return (z); /*将z的值返回给主调用函数*/

}

第2章数据类型,运算符和表达式

2.1以下标识符中不属于C语言的基本数据类型的是 C 。

A.char

B.long

C.bool

D.float

2.2以下选项中属于C语言的数据类型是 C 。

A.复数型

B.逻辑型

C.双精度型

D.集合型

2.3下列标识符中,合法的标识符是 C 。

A.-abc1

B.1abc

C._abc1

D.for

2.4在标准C语言中,不正确的int类型的常数是 A 。

A.32768

B.0

C.037

D.0xAF

2.5以下所列的C语言常量中,错误的是 B 。

A.0xFF

B.1.2e0.5

C.2L

D.'\72'

2.6在C语言中,合法的长整型常数是 B 。

A.0L

B.

C.&

D.216D

2.7以下不正确的语句(设有int p,q)是 D 。

A.p*=3; B.p/=q; C.p+=3; D.p&&=q;

2.8以下使i的运算结果为4的表达式是 D 。

A.int i=0,j=0; (i=3,(j++)+i); B. int i=1,j=0; j=i=((i=3)*2);

C. int i=0,j=1; (j==1)? (i=1): (i=3);

D. int i=1,j=1; i+=j+=2;

2.9设n=10,i=4,则赋值运算n%=i+1执行后,n的值是 A 。

A.0

B.3

C.2

D.1

2.10逗号表达式(a=3*5,a*4),a+15的值为 C ,a的值是 C 。

①A.15 B.60 C.30 D.不确定

②A.60 B.30 C.15 D.90

2.10如果a=1,b=2,c=3,d=4,则条件表达式a>b?a:c>d?c:d的值为 D 。

A.1

B.2

C.3

D.4

2.12 在C语言中,不同类型数据混合运算时,要先转换成同一类型后进行运算。设一表达式中包含有int,long,unsigned和char类型的变量和数据,则表达式最后的运算结果是

D 类型的数据。这四种类型数据的转换规律是 C 。

①A.int B.char C.unsigned D.long

②A.int->unsigned->long->char

B.char->int->long->unsigned

C.char->int->unsigned->long

D.char->unsigned->long->int

2.13 写出经过下列运算后变量a的值,设a的初值为15:

(1) a+=a; (2) a-=2;

(3) a*=2+3; (4) a/=a+a;

(5) a%=(5%=2) (6) a+=a-=a*=a

(1) 30 (2) 13 (3) 75 (4) 0 (5) 0 (6) 0

2.14 假定x=10,y=20,z=30;试判断下列逻辑表达式的真(1)假(0)。

(1) x<10||x>10 (2) (x

(3) x<10 && x>10 (4) x>y || y>x

(5) !(x

(1) 0 (2) 1 (3) 0 (4) 1 (5) 0 (6) 1

2.15 C有哪些基本数据类型?简述各类型所占的字节数。

略(见课本表2-2)。

2.16 字符常量与字符串常量有什么区别?

由于字符数据在内存中是以ASCII码存储,它的存储形式与整数的存储形式类似。一个字符常量在计算机的存储中占据一个字节。

字符串常量在内存中按顺序逐个存储字符串中的字符的ASCII码,并在最后自动加上一个字符’\0’(空字符,该字符的ASCII码值为0,也称NULL字符),作为字符串结束标志,所以字符串实际占用字节数要比字符串中字符的个数(长度)多1个。

2.17 什么是表达式?什么变量?变量名和变量值有什么本质区别?

表达式是由运算符、常量、变量、函数、圆括号等按一定的规则组成的式子。每一个表达式也都具有一定的值。

变量是以某标识符为名字(变量名),在程序运行过程中,其值是可以改变的量。

变量名实际上是代表一个内存的存储地址,在对程序编译连接时由编译系统给每一个变量名分配对应的内存地址。变量的存取操作,实际上是通过变量名找到相应的内存地址,从该存储单元中存取数据。

第3章顺序结构

3.1有如下程序段:

int a1,a2;

char c1,c2;

scanf("%d%c%d%c",&a1,&c1,&a2,&c2);

若要求a1,a2,c1,c2的值分别为10,20,a,b正确的数据输入是 A 。

A.10a 20b↙

B.10 a 20 b↙

C.10 a20b↙

D.10a20 b↙

3.2有如下程序,输入数据:12345 678↙后,x的值是 B ,y的值是 A 。

#include

void main()

{

int x;

float y;

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

}

(1) A.12345 B.123 C.45 D.345

(2) A.45. B.45678. C.678. D.123.000

3.3请写出下面程序的运行结果:

#include

void main()

{

short int a=65,b=100;

float x=123.4567, y=-100.3388;

char c='a';

long n=;

unsigned u=65535;

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

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

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

printf("%-8.2f, %8.2f,%.4f,%.4f,%3f,%3f\n",x,y,x,y,x,y);

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

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

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

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

}

运行结果:

A,d

65, 100

123.,-100.

123.46 , -100.34,123.4567,-100.3388,123.,-100.

1.e+002,-1.00E+002

a,97,141,61

,,12d687

65535,,ffff,65535

Press any key to continue

3.4顺序结构有哪些主要特点?

顺序结构就是按照语句书写的先后顺序依次执行,具有“单入口和单出口”的控制特点。

3.5顺序结构语句可以分为哪几类?

简单顺序语句主要有表达式语句、空语句、复合语句等。

3.6编程输入两个整数,输出它们的平方和它们的平方根。

#include

#include

void main()

{

int a,b;

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

if(a>=0&&b>=0)

{

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

printf("a^1/2=%f,b^1/2=%f\n",sqrt(a),sqrt(b));

}

}

3.7编程输入三角形的三边长,计算并输出三角形面积和周长。

#include

#include

void main()

{

int a,b,c,girth,s,p;

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

if(a>0&&b>0&&c>0&&(a+b)>c&&(a+c)>b&&(b+c)>a)

{

girth=a+b+c;

p=girth/2;

s=sqrt((p-a)*(p-b)*(p-c)*p);

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

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

}

}

3.8编程输入两个整数,输出它们相除的整数商(整除值)以及余数。

#include

void main()

{

int a,b,c,d;

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

c=a/b;

d=a%b;

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

}

3.9编程输入一个double类型的数,将该数小数点后的第三位按四舍五入的方法保留到小数点后两位(提示:将该数乘以100,加上0.5之后取整,再除以100)。

#include

void main()

{

float a,b;

scanf("%f",&a);

a=a*100;

a=a+0.5;

b=(int)a;

b=b/100;

printf("%f",b);

}

3.10 编程输入一个实数将其分解为整数部分和小数部分并输出。如输入为345.67,则输出为:345.67=345+0.67。

#include

void main()

{

float a,b;

int c;

scanf("%f",&a);

c=(int)a;

b=a-c;

printf("%f=%d+%f",a,c,b);

}

第4章选择结构

4.1写出下列程序段的运行结果

(1) 5

分析:这是if语句嵌套问题。本题else是与第二个if语句(if (y<0))配对的。

(2) 2

分析:这是if语句嵌套问题,关键是要清楚各个if与else的配对关系。本题的if 与else的配对关系如下:

if(a

if(c

else

if (a

if (b

else x=3;

else x=4;

else x=5;

printf("%d",x);

(3) 10

分析:先计算a+1的值(值是4),再执行case 4:后的语句,直到遇到break语句才结束switch语句,即执行了“a+=4;”,还要继续执行“a+=3;”才结束switch语句。另外要注意的是,在计算表达式a+1的值时,a的值是不变的,即执行语句case 4:a+=4前,a 的值是3而不是4。

(4) a=2,b=1

分析:先执行“case 1:”后的语句,结束switch(y)时,a=1,b=0。由于switch(y)后没有遇到break语句,则继续执行“case 2:”后的语句,遇到break语句后,结束switch(x)语句。

4.2请将下列语句改写成switch语句。

switch(s)

{

case 1:

case 2: x=1;break;

case 3:

case 4:

case 5:

case 6:x=10;break;

case 7:

case 8: x=1;break;

case 9:

case 10: x=3;break;

default: x=0;

}

分析:将各语句按缩进的格式排列,if与else的配对关系如下:

if ((s>0)&&(s<=10))

if ((s>=3)&&(s<=6))

x=10;

else if ((s>1)&&(s>8))

x=3;

else x=1;

else x=0;

此时s各段数值的x取值为:

1,2 : x=1

3-6 : x=10

7,8 : x=1

9,10: x=3

其它: x=0

4.3求分段函数的值:

x2-1 x<0

y = x2 0≤x<1

x2+1 x≥1

分析:先判断x是否小于0,若是则直接计算x2-1,否则(即x大于或等于0)再判断x是否小于1,是则计算x2,不是则说明x大于等于1,计算x2+1。

#include

void main()

{

int x,y;

scanf("%d",&x);

if (x<0)

y=x*x-1;

else if(x<1)

y=x*x;

else

y=x*x+1;

printf("\n x=%6.2f y=%6.2f ",x,y);

}

4.4判断一个整数是否既是5的倍数,也是9的倍数。

分析:如果x除5的余数为0(x%5==0),x就是5的倍数,如果x除9的余数为0(x%9==0),x就是9的倍数。一个整数既是5的倍数,也是9的倍数,其判断条件为:

(x%5==0)&&(x%9==0)

void main()

{

int x;

scanf("%d",&x);

if ((x%5==0)&&(x%9==0))

printf(" Yes!");

else

printf(" No!");

}

4.5判断一个正整数是否是一个能被37整除的三位数。

分析:先判断输入的数是不是一个三位的正整数,如果是,再判断其是否能被37整除。一个三位的正整数,其必须大于0并且小于1000;一个数能被37整除,则此数除37后余数为0。

#include

void main()

{

int x;

scanf("%d",&x);

if ((x>0)&&(x<1000))

if (x%37==0)

printf(" Yes!");

else

printf(" No!");

else

printf(" No!");

}

4.6将任意三个整数按由小到大顺序输出。

分析:最小的数存放在x,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。

#include

main()

{

int x,y,z,t;

scanf("%d%d%d",&x,&y,&z);

if (x>y)

{t=x; x=y; y=t;} /*交换x,y的值*/

if(x>z)

{t=z; z=x; x=t;} /*交换x,z的值*/

if(y>z)

{t=y; y=z; z=t;} /*交换z,y的值*/

printf("small to big: %d %d %d\n",x,y,z);

}

4.7编程实现:输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。

分析:将a2+b2存于变量s,s百位以上的数字可通过s/100得到。

#include

void main()

{

long a,b,s;

scanf("%ld%ld",&a,&b);

s=a*a+b*b;

if (s<=100)

printf(“%ld”,s);

else

printf(“%ld”,s/100);

}

4.8给出一个5位数,判断它是不是回文数。如:12321是回文数,个位与万位相同,十位与千位相同。

分析:学会分解出每一位数。万位数字可通过将此数整除10000得到;将此数除10000后的得到的余数再整除1000,则可得到千位数字;将此数除100后的得到的余数再整除10,则可得到十位数字;将此数除10后的得到的余数就是个位数字。求出万位、千位、十位、个位数后,如果个位等于万位并且十位等于千位,则此数就是回文。

#include

void main()

{

Int ge,shi,qian,wan,x;

scanf("%ld",&x);

wan=x/10000; /*万位*/

qian=x%10000/1000;/*千位*/

shi=x%100/10; /*十位*/

ge=x%10; /*个位*/

if (ge==wan&&shi==qian) /*个位等于万位并且十位等于千位*/

printf("Yes! \n");

else

printf("No! \n");

}

4.9某企业发放的奖金是根据利润提成。利润≤10万元时,奖金可提10%;10万元<利润≤20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万<利润≤40万时,高于20万元的部分,可提成5%;40万<利润≤60万时,高于40万元的部分,可提成3%;60万<利润≤100万时,高于60万元的部分,可提成1.5%,利润≥100万元时,超过100万元的部分按1%提成。要求:输入当月利润,输出应发放奖金数额。

分析:由于利润数值较大,定义时需把利润定义为长整型。先计算10万、20万、40万、60万、100万利润的奖金提成bonus1、bonus2、bonus4、bonus6、bonus10,然后根据实际利润i所处的数值段计算奖金。

#include

main()

{

long int i;

int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i);

bonus1=*0.1;

bonus2=bonus1+*0.075;

bonus4=bonus2+*0.05;

bonus6=bonus4+*0.03;

bonus10=bonus6+*0.015;

if(i<=)

bonus=i*0.1;

else if(i<=)

bonus=bonus1+(i-)*0.075;

else if(i<=)

bonus=bonus2+(i-)*0.05;

else if(i<=)

bonus=bonus4+(i-)*0.03;

else if(i<=)

bonus=bonus6+(i-)*0.015;

else

bonus=bonus10+(i-)*0.01;

printf("bonus=%d ",bonus);

}

习题十二

12.1C

12.2 C

12.3写出下列程序段的运行结果。

(1)15

分析:在带参数宏声明中,宏展开后的赋值语句为k=10*(i)<(j)?(i):(j);由于*的优先级比<高,条件表达式的条件判断过程是:先计算10*i的结果,再与j值比较。由于10*10大于15,所以条件表达式取y的值,即15。

(2)7

-6

分析:宏展开后的语句为:

a=5+1;

printf("%d\n", 5+1*5/2);

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

第一个输出语句中的表达式值为7,第二个输出语句中a的值是6。

(3)9

分析:在宏声明PRINT(a)中使用已经声明的宏PR(a)。本题宏PRINT的实参是F(3)*x,包含了一个宏F,由于宏替换是直接照字符原样替换,替换后实参成为:3.84+3*x,用它来替换宏PRINT(a)中的a, 得到语句:printf("%d",(int)( 3.84+3*x))。表达式的值是9.84,取整输出为9。

(4)c=15

分析:由于标识符DEBUG已在文件开始被#define命令声明过,主程序不执行第一个printf语句。

12.4编写程序实现求a2+b2+c2的值,要求使用宏。

分析:声明一个带参的宏S(x,y,z),在主函数调用并输出。

#include

#define S(x,y,z) ((x)*(x)+(y)*(y)+(z)*(z))

void main()

{ int a,b,c;

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

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

}

12.5声明一个带参的宏 swap(x,y),实现两个整数的互换,并利用它将一维数组 a 和 b 的值进行交换。

分析:声明带参的宏 swap(x,y),注意宏中包含多个语句,在主函数的循环中调用它来实现数组值的交换。

#include

#define Swap(x,y) {t=x; x=y; y=t;}

#define N 3

void main()

{ int a[N],b[N];

int i,t;

for(i=0;i

scanf("%d %d",&a[i],&b[i]);

for(i=0;i

Swap(a[i],b[i]);

for(i=0;i

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

}

12.6设x=3.4,y=2.0,z=9.1,请写出一个宏Prin(x,y,z),要求此宏能输出如下:

x = 3.4

y = 2.0

z = 9.1

分析:用宏来定义好输出格式,实数采用“%4.1f”的输出格式,每输出一个变量后换行。

#include

#define Prin(x,y,z) printf(" x =%4.1f\n y =%4.1f\n z =%4.1f\n",x,y,z)

void main()

{

float a,b,c;

scanf("%f %f %f",&a,&b,&c);

Prin(a,b,c);

}

《C语言程序设计》第三章 C语言基础 课堂笔记

页眉内容 《C语言程序设计》第三章C语言基础课堂笔记 §3.1 基本字符集、关键字和标识符 一.基本字符集 字符是C的基本元素,C语言允许使用的基本字符集: 1.26个大写字母A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 2.26个小写子母a b c d e f g h I j k l m n o p q r s t u v w x y z 3.10个阿拉伯数字0 1 2 3 4 5 6 7 8 9 4.其他字符!" # % & ' ( ) * + , - . / : < = > ? [ \ ] ^ _ { | } ~ 5.空格字符以及制表符合换行符等控制字符 二.关键字(P375,附录II) C中具有固定意义的字符串。 (1) C中的关键字共32个,必须用小写字母 (2) 关键字不可用于变量名、函数名等。 auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while 三.标识符 标识符用于命名变量、类型、函数和其他各种用户定义的对象,是由字母、下划线和数字三种字符组成。 (1) 第一个字符必须为字母或下划线 (2) C对标识符的长度规定为任意,Turbo C区分32 个字符 (3) C区分大小写 (4) 不允许关键字作为标识符 §3.2 C数据类型

C语言程序设计教程第一章练习题题目

单选题 1、下列语言中不属于计算机语言的三大类的是(C)。 A.机器语言 B.汇编语言 C.脚本语言 D.高级语言 2、下列说法中不正确的是(C) A.计算机语言大致可分为三大类,即机器语言、汇编语言和高级语言 B.C语言是一种通用的、过程式的编程语言,具有高效、灵活、可移植等优点 C.C语言属于汇编语言 D.高级语言比汇编语言更贴近于人类使用的语言,易于理解、记忆和使用 3、以下开发工具中不属于主流的开发工具的是(B) A.Visual Studio B.Xcode C.Code::Block D.Eclipse 4、下列选项是对主流开发工具的介绍,其中错误的是(B) A.Visual Studio支持C/C++、C#、F#、VB等多种程序语言的开发和测试 B.Code::Block是一个免费的跨平台IDE,支持C、C++和Fortan程序的开发 C.Eclipse是一种被广泛使用的免费跨平台IDE,最初由IBM公司开发 D.Vim是一款功能非常强大的IDE ( 和其他IDE不同的是,Vim本身并不是一个用于开发计算机程序的IDE,而是一款功能非常强大的文本编辑器,它是UNIX系统上Vi编辑器的升级版。) 5、下列选项中,不属于开发一个C语言应用程序的具体实现步骤的是(A) A.启动开发工具 B.添加源文件 C.编写代码 D.运行程序 6、下列选项中,关于main()函数叙述不正确的是(C) A.一个完整的C语言程序中,有且只能有一个main()函数 B.main()函数是程序的主入口,程序总是从main()函数开始执行 C.如果没有声明main()函数,程序将从第1行开始执行 D.main()函数可以有返回值,也可以没有返回值 7、下面程序中,合法的选项是(D) A.#includeint main() { printf("hello world\n"); return 0; } B.#includeint man() { printf("hello world\n"); return 0; } C.#includeint main() { printf("hello world\n") return 0; } D.#includeint main() { print("hello world\n"); return 0; } 8、下面程序中,运行结果为“1,2”的是(A) A.#includeint main() { int a = 1; int b = 2; printf("%d %d\n",a,b); return 0; } B.#includeint main() { int a = 1; int b = 2; printf("%d,"a); printf("%d\n",b); return 0; } C.#includeint main() { int a = 1, b = 2; printf("%d,,%d\n",a,b); return 0; }

C语言程序设计习题集

目录 第一章C语言基础知识 (1) 第二章C语言程序设计的初步知识 (3) 第三章顺序结构程序设计 (5) 第四章选择结构程序设计 (9) 第五章循环结构程序设计 (12) 第六章数组 (16) 第七章函数 (19) 第八章指针 (23) 第九章结构体与共用体 (27) 第十章文件 (30) 模拟试题一 (33) 第一章答案 (39) 第二章答案 (40) 第三章答案 (40) 第四章答案 (41) 第五章答案 (42) 第六章答案 (44) 第七章答案 (45) 第八章答案 (47) 第九章答案 (48) 第十章答案 (49) 模拟试题一答案 (52)

第一章C语言基础知识 一、选择题 1.C语言规定,必须用作为主函数名。 A)Function B)include C)main D)stdio 2.是C程序的基本构成单位。 A)函数B) 函数和过程C) 超文本过程D) 子程序3.下列说法正确的是。 A)一个函数的函数体必须要有变量定义和执行部分,二者缺一不可 B)一个函数的函数体必须要有执行部分,可以没有变量定义 C)一个函数的函数体可以没有变量定义和执行部分,函数可以是空函数 D)以上都不对 4.下列说法正确的是。 A)main函数必须放在C程序的开头 B)main函数必须放在C程序的最后 C)main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执 行的 D)main函数可以放在C程序的中间部分,但在执行C程序时是从main函数 开始的 5.下列说法正确的是。 A)在执行C程序时不是从mian函数开始的 B)C程序书写格式严格限制,一行内必须写一个语句 C)C程序书写格式自由,一个语句可以分写在多行上 D)C程序书写格式严格限制,一行内必须写一个语句,并要有行号 6.在C语言中,每个语句和数据定义是用结束。 A)句号B)逗号C)分号D)括号 7.下列字符串是标识符的是。 A)_HJ B)9_student C)long D)LINE 1 8.以下说法正确的是。 A)C语言程序总是从第一个定义的函数开始执行 B)在C语言程序中,要调用的函数必须在main()函数中定义 C)C语言程序总是从main()函数开始执行 D)C语言程序中的main()函数必须放在程序的开始部分 9.不是C语言提供的合法关键字。 A)switch B)print C)case D)default

C语言-第三章编程题

完成以下编程题,将程序源代码粘贴提交。 P.56 2.编写程序,输入圆的半径,计算并输出其周长和面积。常量pi的值取3.14159,周长和面积取小数点后2位数字。 #include #define pi 3.14159 void main() { float r,s,a; printf("请输入圆的半径"); scanf("%f",&r); s=pi*r*r; a=2*pi*r; printf("s=%.2f,a=%.2f\n",s,a); } 3.编写程序,把整数华氏温度f转换为浮点型的摄氏温度c。转换公式为c=5/9(f-32),输出要有文字说明,取2位小数。 #include void main() { int f; float c; printf("请输入华氏温度"); scanf("%d",&f);

c=5.0/9*(f-32); printf("摄氏温度为%.2f\n",c); } 4.编写程序,输入三角形的三边的边长,求三角形面积。三角形面积的计算公式为:p=(a+b+c)/2 ,S=sqrt(p(p-a)(p-b)(p-c))。 #include #include void main() { float a,b,c,S,p; printf("请输入三角形三边长\n"); scanf("%f%f%f",&a,&b,&c); p=(a+b+c)/2.0; S=sqrt(p*(p-a)*(p-b)*(p-c)); printf("S=%f\n",S); } 6.编写程序,输入一个小写字母,输出其对应的大写字母。 #include void main() { char c; printf("请输入一个小写字母\n"); scanf("%c",&c);

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

C语言程序设计习题集3

指针 一单项选择题(每题2分,共40分) 1 以下叙述中错误的就是_B__。 A 在程序中凡就是以“#”开始的语句行都就是预处理命令行 B 预处理命令行的最后不能以分号表示结束 C #define MAX就是合法的宏定义命令行 D C程序对预处理命令行的处理就是在程序执行的过程中进行的 2 若程序中有宏定义行:#define N 100 ,则以下叙述中正确的就是__B_。 A 宏定义行中定义了标识符N的值为整数100 B 在编译程序对C源程序进行预处理时用100替换标识符N C 对C源程序进行编译时用100替换标识符N D 在运行时用100替换标识符 3 若有如下宏定义: #define N 2 #define y(n) ((N+1)*n) 则执行下列语句:z=4*(N+y(5));后的结果就是_B__。 A 语句有错误 B z值为68 C z值为60 D z值为180 4 以下程序运行后的输出结果就是_A__。 #define F(X,Y) (X)*(Y) main() { int a=3,b=4; printf("%d\n",F(a++,b++)); } A 12 B 15 C 16 D 20 5 以下程序运行后的输出结果就是_C__。 #define f(x) (x*x) main() { int i1,i2; i1=f(8)/f(4); i2=f(4+4)/f(2+2); printf("%d,%d\n",i1,i2); } A 64,28 B 4,4 C 4,3 D 64,64 6 若已定义a为int型变量,则__D_就是对指针变量p的正确说明与初始化。 A int p=&a; B int *p=a; C int *p=*a; D int *p=&a; 7 已知下列说明语句: static int a[]={2,4,6,8} static int *p[]={a,a+1,a+2,a+3}; int **q; q=p; 则表达式**(q+2)的值就是_A__。 A 6 B 2 C 4 D 8 8 下面就是一个初始化指针的语句:int *px=&a;,其中指针变量的名字应该__C_。 A *px B a C px D &a 9 若指针px为空指针,则_B__。。

二级c语言程序设计习题及解答ch1-3

12)计算机能直接执行的程序是(B )。 A)源程序B)目标程序C)汇编程序D)可执行程序 13)以下叙述中正确的是( D ) A)程序设计的任务就是编写程序代码并上机调试 B)程序设计的任务就是确定所用数据结构 C)程序设计的任务就是确定所用算法 D)以上三种说法都不完整 例年真题: #include main() { Int a; A=5; /*给A变量赋值5 A+=3; 再赋值后再加3*/ Printf(“%d”,a); } (11)以下叙述中正确的是( C )。 A)C 程序的基本组成单位是语句B)C 程序中的每一行只能写一条语句 C)简单C 语句必须以分号结束D)C 语句必须在一行内写完 (11)以下叙述中正确的是( C ) A)C程序中的注释只能出现在程序的开始位置和语句的后面 B)C程序书写格式严格,要求一行内只能写一个语句 C)C程序书写格式自由,一个语句可以写在多行上 D)用C语言编写的程序只能放在一个程序文件中 (12)以下选项中,能用作用户标识符的是( C ) A)void B)8_8 C)_0_ D)unsigned 【解析】A:关键字不可以B:不以数字开头C:正确D:关键字 (13)以下选项中合法的标识符是( C ) A)1-1 B)1—1C)-11D)1— 【解析】A:不以数字开头,出现非法字符-而不是_ B:不以数字开头,非法字符C:正确D: 不以数字开头,出现非法字符 (14)以下选项中不合法的标识符是( C ) A)print B)FOR C)&a D)_00 【解析】C:出现非法字符& (15)以下选项中,能用作数据常量的是( D ) A)o115 B)0118 C)1.5e1.5D)115L

《C语言程序设计》综合练习题与答案

《C语言程序设计》综合练习题与答案 一、简要问答下列问题 1.什么是源程序? 2.C语言源程序的编译过程是怎样的? 3.简述C语言的特点 4.C/C++程序都是由函数组成的,其中最主要的、不可缺少的函数是哪一个?举例说明该函数的结构。 5.函数的返回值是通过什么语句来实现的,它的格式是什么? 6.在编写C程序时,为什么要把库函数的头文件包含到用户源程序中?如何把用户的头文件包含到用户源程序? 7.在计算机中,存储的数据为什么要分成多种不同的数据类型? 8.什么是常量?什么是变量? 9.C语言的五种基本数据类型有哪些?它们的关键字和所占的字节数分别是什么? 10.判断标识符是否合法的三条规则是什么? 11.什么是C语言的关键字?关键字对标示符有何影响? 12.全局变量和局部变量有什么区别? 13.什么是空语句,什么是语句块? 14.结构化程序设计的三种基本结构是什么? 15.三种循环语句各有什么特点? 16.什么叫多重循环结构? 17.Continue语句与break语句有什么区别? 18.字符与字符串有什么区别?‘b’与“b”相同吗? 19.什么是数组?一维数组的定义形式是怎样的? 20.字符串的结束标记是什么? 21.什么是按位操作?C语言对按位操作有哪些要求? 22.什么是指针?指针的两个操作符表示什么意义? 23.指针和数组有什么关系? 24.指针有那几种算术运算?说明指针变量的算术运算与一般变量的算术运算有何区别? 25.函数是由哪三部分组成的?函数定义的一般形式是什么? 26.函数原型是什么情况下使用?有什么作用? 27.形参和实参有什么关系,函数的两种调用方式是什么? 28.什么是函数的递归调用? 29.什么是函数指针?说明定义函数指针的一般形式。 30.什么是内部函数?什么是外部函数? 31.C语言的四种用户定义数据类型是什么? 32.C系统提供的三种主要预处理功能是什么? 33.什么是文件包含? 34.什么是文件?什么是流?

c语言程序设计第三章课后答案

/*习题3 2*/ #include main() { int rate; double salary,tax; printf("enter salary:\n"); scanf("%lf",&salary); if(salary<=850) rate=0; else if(salary>850&&salary<=1350) rate=5; else if(salary>1350&&salary<=2850) rate=10; else if(salary>2850&&salary<=5350) rate=15; else rate=20; tax=rate*(salary-850)/100; printf("tax=%.2lf\n",tax); } /*习题3 4*/ #include main() { int n,i,A=0,B=0,C=0,D=0,E=0; double grade,sum=0,ave; printf("enter n:\n"); scanf("%d",&n); printf("enter n ge grade\n"); for(i=1;i<=n;i++) { scanf("%lf",&grade); sum=sum+grade; if(grade>=90&&grade<=100) A=A+1; else if(grade>=80&&grade<=89) B=B+1; else if(grade>=70&&grade<=79) C=C+1; else if(grade>=60&&grade<=69) D=D+1; else E=E+1;

C语言程序设计练习题(含程序及参考答案)21182

C语言练习题 (所提供的源程序均采用自定义函数方式解决,如不采用函数方式,也可直接在main函数中借鉴该思想编程,因时间有限,所有程序未能一一验证,仅供参 考使用) 1、定义一个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。 #include int fun(int a,int b,int c) { if(a+b>c && b+c>a && a+c>b) { if(a==b && b==c ) return 3; else if(a==b||b==c||a==c) return 2; else return 1; } else return 0; } void main() { int a,b,c,shape; printf("\nInput a,b,c: "); scanf("%d%d%d",&a,&b,&c); printf("\na=%d, b=%d, c=%d\n",a,b,c); shape =fun(a,b,c); printf("\n\nThe shape : %d\n",shape); }

2、编写一个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运行后 a 中的值为8,b中的值为3。 #include void fun(int *x,int *y) { int t; t=*x;*x=*y;*y=t } void main() { int a=3,b=8; printf("%d %d\n",a,b); fun(&a,b); printf("%d %d\n",a,b); }

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

c语言详解(第五版)第三章程序设计项目答案

c语言详解(第五版)第三章程序设计项目答案 1.假设买一辆车首付为500dollar。请计算月供。 #include #include #include int main(void) {double capital_sum,monthly_interest_rate,initial_payment,temp,payment,terms; printf("Please enter the price of the car>>"); scanf("%lf",&capital_sum); printf("Please enter the monthly interest rate>>"); scanf("%lf",&monthly_interest_rate); printf("Please enter the terms duration of loan>>"); scanf("%lf",&terms); printf("Please enter the initial_payment>>"); scanf("%lf",&initial_payment); temp=1+monthly_interest_rate; payment=(capital_sum-500)*monthly_interest_rate/(1-pow(temp,-terms)); printf("The monthly contribution is %.2f dollars.",payment); printf("The capital sum is %.2f dollars.",capital_sum); system("pause"); return 0; } 2.编写两个函数,一个显示三角形,另一个显示矩形。 #include #include #include void draw_triangle(void); void draw_rectangle(void); int main(void) {draw_triangle(); draw_rectangle(); system("pause"); return 0; } /*Draw an triangle.*/ void draw_triangle(void) { printf(" /\\ \n"); printf(" / \\ \n"); printf(" / \\ \n"); printf(" / \\ \n"); printf(" -------- \n"); } void draw_rectangle(void)

桂林电子科技大学C语言程序设计习题集及答案

一 单项选择题(每题2分,共44分) 1 以下叙述正确的是__C _。 A C 程序基本组成单位是语句 B C 程序每一行只能写一个语句 C 简单C 语句必须以分号作为结束符 D 注释语句可以嵌套 2 一个C 语言程序是从_B __开始执行的。 A 程序中第一个函数 B 名为main 的函数 C 包含文件(头文件)的第一个函数 D 程序中的第一个语句 3 请选出合法的C 语言赋值语句_B __。 A a=b=58 B i++; C a=58,b=58 D k=int(a+b); 4 下面标识符中,合法的用户标识符是 _B __。 A 1abc B include C a-b-c123 D char 5 以下所列的C 语言整形常量中,正确的是_A __。 A 0x10 B 0976 C 076L D 01ff 6 C 语言中下列运算符的操作数必须为整型的是_A __。 A % B ++ C / D = 7 设a 和b 均为int 型变量,则执行以下语句后的输出为_B __。 int a=20; int b=3; printf("%d\n ",a+=(b%=2)); A 20 B 21 C 0 D 23 8 已知int i;,则执行语句 i=2.6;后,i 的值为_A __。 A 2 B 3 C 2.6 D 不确定 9 以下合法的字符常量为_D __。 A 'ab ' B '\482' C '\' D '\xaf ' 10 若y 为int 型变量,则执行以下语句后,y 的值是 _C __。 y=8; y+=y-=y*y; A 64 B –56 C –112 D –48 11 以下合法的浮点型常量是_D __。 A e-3 B 1.5e+2.4 C 3.14e+2L D 3.14 e +5 12 设int 数据占用两个字节,float 数据占用四个字节,double 数据占用8个字节,且已知float a=2;int b=3;则执行下列语句输出为__A _。 printf("%d ",sizeof(a*b)+2/5); A 4 B 8 C 6 D 7 13 设int 型占2个字节,且int i=-2;,则语句printf("%u ",i);的输出结果为_C __。 A 0 B -2 C 65534 D 65535 14 若x 、y 、z 均为整型常量,且a=100,则执行下列语句后的z 值为_A _。 x=a++; y=--a; z=x+y-a--; A 100 B 400 C 200 D 300 15 若有以下定义和语句:int u=010,v=0x10,w=10,printf("%d,%d,%d\n ",u,v,w);,则输出结果是_A __。 A 8,16,10 B 10,10,10 C 8,8,10 D 8,10,10 16 设x 、y 为int 型变量,则执行下列语句后,y 的值是__A _。 x=5; y=x++*x++; y=--y*--y; A 529 B 2401 C 1209 D 625 17 假设在程序中a,b,c 均被定义成整型,并且已赋大于1的值,则下列能正确表示代数式 abc 1 的表达式是__D __。

C语言程序设计(第3版)第3章习题参考答案

习题三参考答案 (1)从键盘输入一个年份值,判断是否闰年。设iYear为某一年份,iYear为闰年的条件为:iYear可以被4整除且不可以被100整除,或者iYear可以被400整除。 #include "Stdio.h" #include "Conio.h" int main(void) { int iYear; printf("please input the year:"); scanf("%d",&iYear); if(iYear%400==0||(iYear%4==0&&iYear%100!=0)) printf("%d is leap",iYear); else printf("%d is not leap",iYear); getch(); return 0; } (2)从键盘输入三个整数,按由小到大的顺序输出。 #include "stdio.h" main() {int i,j,k,max; scanf("%d%d%d",&i,&j,&k); max=i>j?i:j; max=max>k?max:k; printf("max=%d",max); getch(); } (3)假设星期一至星期五每工作一小时的工资是20元,星期六和星期日每工作一小时的工资是平时的3倍,其中工资的4.5%是税金。试编一程序从键盘输入星期序号(1,2,3,4,5,6,7,分别表示星期一至星期天)和工作小时数,计算该日的工资及应交税金。 #include "Stdio.h" #include "Conio.h" int main(void) { int iWeek,iHours ; float fSalary,fTaxes;

C语言程序设计函数练习题及参考答案

C语言程序设计练习题及参考答案 1、定义一个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。 #include int fun(int a,int b,int c) { if(a+b>c && b+c>a && a+c>b) { if(a==b && b==c ) return 3; else if(a==b||b==c||a==c) return 2; else return 1; } else return 0; } void main() { int a,b,c,shape; printf("\nInput a,b,c: "); scanf("%d%d%d",&a,&b,&c); printf("\na=%d, b=%d, c=%d\n",a,b,c); shape =fun(a,b,c); printf("\n\nThe shape : %d\n",shape); }

2、编写一个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运行后 a 中的值为8,b中的值为3。 #include void fun(int *x,int *y) { int t; t=*x;*x=*y;*y=t } void main() { int a=3,b=8; printf("%d %d\n",a,b); fun(&a,b); printf("%d %d\n",a,b); }

华师《C语言程序设计》练习题库答案

《C语言程序设计》试题库答案 一、选择题(下列各题有四个选项,只有一个答案是正确的,请选出正确选项)1--5ACDCB 6--10 ACBAB 11--15CCADB 16--20BABCD 21--25CDACC 26--30 DDBDB 31--35DADAA 36—40BCBCC 41—45CDCCB 46--50 CBAAD 51--55 BCAAC 56--60 DBBCA 61--65 CDCCD 66-70 CDDAC 71—75 CCDBC 76—80 DDBCA 81—85 CDDDB 86—90 BBBAB 二、填空题 1、【1】1 【2】2 2、【1】4 【2】8 3、 -16 4、 -32768 ~ 32767 5、【1】单精度型(或:float)【2】双精度型(或:double) 6、【1】整型【2】字符型【3】枚举类型 7、 1 8、 26 9、【1】12 【2】4 10、【1】6 【2】4 【3】2 11、 -60 12、 2 13、【1】10 【2】6 14、 5.500000 15、 3.500000 16、 i:dec=-4,oct=177774,hex=fffc,unsigned=65532 17、 *3.140000,3.142* 18、 c:dec=120,oct=170,hex=78,ASCII=x 19、 *d(1)=-2*d(2)=-2*d(3)=-2* *d(4)=177776*d(5)=177776*d(6)=177776* 20、 *d(1)=-2*d(2)=-2*d(3)=-2* *d(4)=fffe*d(5)=fffe*d(6)=fffe* 21、 *d(1)=3.50000e+00*d(2)=3.500e+00*d(3)=3.500e+00* *d(4)=-3.50000e+00*d(5)=-3.50000e+00*d(6)=-3.5000e+00* 22、 x=1 y=2 *sum*=3 10 Squared is: 100 23、 (1) 10 (2) □□□□10 (□表示空格) (3) 56.100000 (4) □□□□□□3.141600 (5) 5.68100e+02 (6) □□□3.14160e+00

C语言程序设计试题集及其答案

第一章基础知识 一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。 13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。

C语言程序设计试题集及答案

单项选择题 (002) 阅读程序题 (018) 程序填空题 (039) 编写程序题 (070) 一、单项选择题 导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题,应该通过上机实验来检验。 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123C) %d D) \n

【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 ??? A) print B) i\am C) Pxq D) str_l ??? _3d one_half My->book Cpp ??? oodbs tart$it line# pow ??? aBc 3pai His.age while 【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。 A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始B) 程序文件的最后 C) 它所调用的函数的前面D) 程序文件的任何位置 【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义 【1.8】在C语言中,错误的int类型的常数是。 A) 32768 (超过了范围) B) 0 C) 037 D) 0xAF 【1.9】执行语句printf("%x",-1);屏幕显示____。 A) -1 B) 1 C) –ffff D) ffff 【1.10】已知long i=32768;执行语句printf("%d",i);屏幕显示____。 A) -1 B) -32768C) 1 D) 32768 【1.11】已知long i=65539; 执行语句printf("%d",i);屏幕显示____。 A) 65539 B) -3 C) 3D) 程序不能执行 【1.12】在C语言中,整数-8在内存中的存储形式是。 A) 1111 1111 1111 1000B) 1000 0000 0000 1000 C) 0000 0000 0000 1000 D) 1111 1111 1111 0111 【1.13】C语言中字符型(char)数据在内存中的存储形式是____。

c语言程序设计复习题

C语言程序设计复习题 第一章C语言概述 一、选择题: 1、一个C程序的执行是从(A)。 A本程序的main函数开始,到main函数结束 B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C本程序的main函数开始,到本程序文件的最后一个函数结束 D本程序文件的第一个函数开始,到本程序main函数结束 2、在C语言中,每个语句必须以(D)结束。 A.回车符 B.冒号 C.逗号 D.分号 3、C语言规定:在一个源程序中,main函数的位置(C)。 A.必须在最开始 B.必须在系统调用的库函数的后面 C.可以任意 D.必须在最后 4、一个C语言程序是由(B)。 A.一个主程序和若干子程序组成 B.函数组成 C.若干过程组成 D.若干子程序组成 5、下列说法中错误的是(D)。 A.主函数可以分为两个部分:主函数说明部分和主函数体 B.主函数可以调用任何非主函数的其他函数 C.任何非主函数可以调用其他任何非主函数 D.程序可以从任何非主函数开始执行 6、用C语言编写的源文件经过编译,若没有产生编译错误,则系统将(C)。 A.生成可执行目标文件 B.生成目标文件 C.输出运行结果 D.自动保存源文件 二、填空题: 1、C语言只有(32)个关键字和(9)种控制语句。 2、每个源程序有且只有一个(main)函数,系统总是从该函数开始执行C语言程序。 3、C语言程序的注释可以出现在程序中的任何地方,它总是以(\*)符号作为开始标记,以(*/)符号作为结束标记。 4、C语言中,输入操作是由库函数(scanf)完成的,输出操作是由库函数(printf)完成的。 5、系统默认的C语言源程序文件的扩展名是(.c),经过编译后生成的目标文件的扩展名是(.obj),经过连接后生成的可执行文件的扩展名是(.exe)。 6、C语言的标识符只能由(字母、数字和下划线)三种字符组成。 第三章数据类型、运算符和表达式 一、选择题: 1、以下选项中,不正确的C语言浮点型常量是(C)。 A.160. B.0.12 C.2e4.2 D.0.0 2、以下选项中,(D)是不正确的C语言字符型常量。 A.'a' B.'\x41' C.'\101' D."a"

相关主题
文本预览
相关文档 最新文档