C习题.docx
- 文档编号:28375485
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:40
- 大小:34.91KB
C习题.docx
《C习题.docx》由会员分享,可在线阅读,更多相关《C习题.docx(40页珍藏版)》请在冰豆网上搜索。
C习题
第一部分基本概念
一.简答题
1.下面哪些标识符是(a)C的保留字;(b)标准标识符;(c)符号常量(也称为常量宏)的名称所使用的惯例;(d)其他合法标识符;(e)非法标识符?
(1)void
(2)MAX_ENTRIES (3)double (4) time (5) G (6)sue's (7) return (8) printf (9)xyz123 (10)part#2 (11)"char" (12) #insert (13) This_is_a_long_one
2.下面这些变量名中哪些语法正确?
(1)income
(2)twofold (3)Itime (4)c3po (5)int (6)income#1
(7)Tom's (8)item
3.a.用常规的十进制计数法写出下面这些数:
103e-4 1.2345e+6 123.45e+3
b.用C的科学计数法形式写出下面这些数(规范化指数形式):
1300 123.45 0.00426
4.指出在C中,下面哪些是合法的int、double或char类型的常量,哪些不是,并说出每个合法常量的数据类型。
15 'XYZ' '*' $ 25.123 15.0 -999 .123 'x'
5.以7和22作为操作数来对下列表达式进行求值。
22/7 7/22 22%7 7%22
6.假定有下列变量声明:
intcolor,lime,straw,red, oranqe;
doublewhite,green, blue,purple,crayon;
请分别用下面的值对每个表达式进行求值:
color等于2、crayon等于-1.3,straw等于1,red等于3、purple等于0.3E+l。
a.white=color*2.5/purple;
b.green=color/purple;
c.orange=color/red;
d. blue=(color+straw)/(crayon+0.3);
e.lime=red/color+red%color;
f. purple=straw/red*color;
7.执行以下程序后的输出结果是( )。
voidmain()
{inta=10;
a=(3*5,a+4); printf(“a=%d\n”,a);
}
8.以下程序运行后的输出结果是 。
void main()
{ charm;
m=’B’+32;
printf(“%c\n”,m);
}
二.选择题
1.以下不能正确表示算式 的C语言表达式是( )。
A)(a*b)/(c*d) B)a*b/c*d
C)a/c*b/d D)a*b/(c*d)
2.表达式3.6-5/2+1.2+5%2的值是( )
A)4.3 B)4.8 C)3.3 D)3.8
3.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( )
A)大写字母 B)连接符 C)数字字符 D)下划线
4.下列变量定义中错误的是( )
A)int_int; B)doubleint_; C)charFor; D)floatUS$
5.以下不合法的用户标识符是( )
A)j2_KEY B)Double C)4d D)_8_
6.以下合法的字符型常量是( )
A)‘\x13’ B)‘018’ C)"65" D)"\n"
7.下列程序的输出结果是( )
#include
voidmain()
{
doubled=3.2;
intx,y;x=1.2 ;
y=(x+3.8)/5.0 ;
printf(“%d\n”,d*y);
}
A)3 B)3.2 C)0 D) 3.07
8.将C源程序进行( )可得到目标文件。
A)编辑 B)编译 C)连接 D) 运行
9.以下叙述中正确的是( )。
A)构成C程序的基本单位是函数
B)注释语句在C程序中是必不可少的
C)main()必须放在其它函数之前
D)Printf()是系统提供的输出函数
10.执行下列语句:
intx=2;
printf(“%d\n”,((x=4*5,x*5),x+25));
则输出结果是( )。
A)125 B)100 C)45 D)20
11.若inta=4,b=5;,则以下能正确交换两变量值的语句组是( )。
A)a=b;b=a; B)a=a+b;b=a-b;a=a-b;
C)a=a+b;b=a+b;a=a-b; D)t=a;b=t;a=b;
12.以下叙述中错误的是( )
A)C语言源程序经编译后生成后缀为.obj的目标程序
B)C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
13.下列叙述中错误的是( )
A)计算机不能直接执行用C语言编写的源程序
B)C程序经C编译程序编译后,生成的后缀为.obj的文件是一个二进制文件
C)后缀为.obj的文件,经连接后生成的后缀为.exe的文件是一个二进制文件
D)后缀为.obj和.exe的二进制文件都可以直接运行
14.以下叙述中错误的是( )
A)C语言是一种结构化程序设计语言
B)结构化程序有顺序、分支、循环三种基本结构组成
C)使用三种基本结构构成的程序只能解决简单问题
D)结构化程序设计提倡模块化的设计方法
15.对于一个正常运行的C程序,以下叙述中正确的是( )
A)程序的执行总是从main函数开始,在main函数结束
B)程序的执行总是从程序的第一个函数开始,在main函数结束
C)程序的执行总是从main函数开始,在程序的最后一个函数中结束
D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束
16.以下不合法的数值常量是( )
A)011 B)1e1 C)8.0E0.5 D)0xabcd
17.以下不合法的字符常量是( )
A)'\018' B)'\"' C)'\\' D)'\xcc'
18.以下选项中值为1的表达式是( )
A)1-'0' B)1-'\0' C)'1'-0 D)'\0'-'0'
19.设有定义:
intk=0;,以下选项中与其他三个表达式的值不相同的表达式是( )。
A)k++ B)k+=1 C)++k D)k+1
20.已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,以下不能将变量c中大写字母转换为对应小写字母的语句是( )
A)c=(c-A)%26+'a’; B)c=c+32;
C)c=c-'A'+'a’; D)c=('A'+c)%26-'a’;
*21.以下叙述中错误的是( )
A)算法正确的程序最终一定会结束
B)算法正确的程序可以有零个输出
C)算法正确的程序可以有零个输入
D)算法正确的程序对于相同的输入一定有相同的结果
22.下列叙述中错误的是( )
A)一个C语言程序只能实现一种算法.
B)C程序可以由多个程序文件组成
C)C程序可以由一个或多个函数组成
D)一个C函数可以单独作为一个C程序文件存在
23.下列叙述中正确的是( )
A)每个C程序文件中都必须要有一个main()函数
B)在C程序中main()函数的位置是固定的
C)C程序中所有函数之间都可以相互调用,与函数所在位置无关
D)在C程序的函数中不能定义另一个函数.
24.算法中,对需要执行的每一步操作,必须给出清楚、严格的规定,这属于算法的( )
A)正当性 B)可行性 C)确定性 D)有穷性
25.
*27.以下叙述中错误的是( )
A)C程序中的#include和#define行均不是C语句
B)除逗号运算符外,赋值运算符的优先级最低
C)C程序中,j++;是赋值语句
D)C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算
第三章顺序结构
一、简答题
1.若变量a,b已定义为int类型并赋值21和55,要求用printf函数以“a=21,b=55”的形式输出,请写出完整的的输出语句。
2.下面的语句会向double型变量x赋于何值?
x=25.0*3.0/2.5;
3.写出当输入数据为5和7时,请写出下面程序段的输出结果。
printf("Entertwointegers>");
scanf("%d%d",&m,&n);
m=m+5;
n=3*n;
printf("m=%d\nn=%d\n",m,n);
4.写出当age的值为11时,写出下面这些程序行的输出结果。
printf("Mynameis");
printf("JaneDoe.");
printf("\n");
printf("Ilivein");
printf("AnnArbor,MI\n");
printf("andIhave%dyears",age);
printf("ofprogrammingexperience.\n");
5.如何修改习题4中的代码,才能使两个句子之间出现一个空行?
6.写一条输出语句提示用户输入三个整型数,再写一条输入语句将用户输入的三个数分别存入first、second和third。
7.a.写一条语句来显示下面这一行,并且句子最后带有double类型变量x的值。
Thevalueof x is
b.假定radius和area是double类型的变量,包含的是一个圆的半径与面积,请写出一个输出语句以下面的格式显示此信息:
Theareaof acirclewithradius is 。
8.假定有下列常量和变量声明:
#definePI 3.14159
#define MAX_I 1000
…
doublex,y;
inta,b,i;
请指出下列语句哪些是合法的,并说出合法语句所存储的值。
再指出非法的语句以及原因。
假定a等于3,b等于4,y等于-1.0。
a. i=a%b; j. i=(MAX_I-990)/a;
b. i=(989–MAX_I)/a; k. x=a/y;
c. i=b%a; l. i=PI/y;
d. x=PI*y; m. x=PI/y;
e. i=a/-b; n. x=PI/y;
f. x=a/b; o. i=(MAX_I-990)%a;
g. x=a%(a/b); p. i=a%0;
h. i=b/0; q. i=a%(MAX_I-990);
i. i=a%(990–MAX_I); r. x=(double)a/b;
9.a、b、c和x是四个double类型的变量,而i、j和k是int类型的变量。
下面每一条语句都违反了一条或多条算术表达式的格式规则。
请改正使之遵守这些规则。
a. x=4.0a*c;
b. a=ac;
c. i=5j3;
d. k=3(i+j);
e. x=5a+bc;
10.当x=3.456时,写出下面输出语句所显示的精确格式
printf("Threevaluesofxare%4.1f*%5.2f*%.3f\n",x,x,x);
11.当n=345时,写出下面输出语句所显示的精确格式:
printf("Threevaluesof nare%4d*%5.5d*%d\n",n,n,n);
12.如果scanf函数要从输入的同一行获取两个数,那么应该使用什么字符来将这两个数分隔开?
13.当执行scanf函数时,计算机如何确定需要从输入设备获取多少个数据值?
14.下面这段程序片段,哪些语句有错误?
#include
#definePI3.14159
voidmain(void)
{
doublec,r;
scanf("%1f%1f",c,r); /*%lf中l为与大写字母L对应的小写字母*/
PI=c/(2*r);
…
}
15.柑橘类水果的平均PH值为2.2,这个值已经存储在变量avg_citrus_pH中。
请写出一条语句显示柑橘类水果的PH值信息。
16.设有定义:
floatx=123.4567;,写出执行以下语句后的输出结果是( )。
printf("%f\n",(int)(x*100+0.5)/100.0);
二、选择题
1.有以下程序
voidmain()
{ inta=0,b=0;
a=10; /*给a赋值*/
b=20; /*给b赋值*/
printf("a+b=%d\n",a+b);/*输出计算结果*/
}
程序运行后的输出结果是( )。
A)a+b=10 B)a+b=30 C)30 D)出错
2.设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。
以下所示的输入形式中正确的是(注:
□代表空格字符)( )
A)10□X□20□Y〈回车〉 B)10□X20□Y〈回车〉
C)10□X〈回车〉 D)10X〈回车〉
20□Y〈回车〉 20Y〈回车〉
3.若有代数式(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是( )。
(注:
函数pow、fabs、exp的调用方法请参看教材附录中数学函数库的说明)
A)sqrt(abs(n^x+e^x)) B)sqrt(fabs(pow(n,x)+pow(x,e)))
C)sqrt(fabs(pow(n,x)+exp(x))) D)sqrt(fabs(pow(x,n)+exp(x)))
4.有以下程序
#include
voidmain()
{charc1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar();c6=getchar();
putchar(c1);putchar(c2);
printf("%c%c\n",c5,c6);
}
程序运行后,若从键盘输入(从第1列开始)
123<回车>
45678<回车>
则输出结果是( )
A)1267 B)1256 C)1278 D)1245
5.设有定义inta;floatb;执行scanf("%2d%f",&a,&b);语句时,若从键盘输入876 543.0<回车>,a和b的值分别是( )
A)876和543.000000 B)87和6.000000
C)87和543.000000 D)76和543.000000
6.有以下程序,其中%u表示按无符号整数输出( )
voidmain()
{ unsignedintx=0xFFFF; /*x的初值为十六进制数*/
printf("%u\n",x);
}
程序运行后的输出结果是
A)-1 B)65535 C)32767 D)0xFFFF
三、编程题
1.编写一个程序,先将值'x'和76.1分别存储到不同的变量中,然后向用户显示这两个值。
2.请编写一个算法,先获取一个整型输入,然后使之加倍,再减去10,最后显示出结果。
第四章选择结构
一.简答题
1.假定x等于15.0,y等于25.0,请求下列表达式的值。
(1)x!
=y
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 习题