C语言期末考试试卷电子商务1111、21答案.doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#inclde <stdioh> int main( void ) {
char str[80]; gets(str); puts (str); return 0; )
A ・ 123 ABC
B ・ 123
C ・ ABC
2. 下面哪个是C 语言的关键字? _D ___________
A. struct _
B. gets
C. getchar 3. 下面哪个是c 语言中合法的标识符
A 。
A- _answer_ B. 2nd_chance C. 123
D.无任何输出
D. FILE
D. “ABC”
B. printf 南京工业职业技术学院
2 01 1/2 012 第一学期 期末试卷(A 卷)
课程: C 程序设计
出卷人: _____ 考试类型:开卷【】 闭卷【丿】
适用班级: _______________ 电商1111/电商1121 ____________________
班级
学号
姓名
(所有题目答案请写在答题纸上) 一、单项选择题(每题2分,共60分)
1-键盘输入为“123 ABC” v 回车〉时,下列程序的输出为—A _________________
4. 以下那个是c 语言的关键字 A
5. 若有变量定义
double x=5.0,y;
则表达式 B. 7.0 的值是一 B
A. 7.5 C. 4.5 D. 8.0
C. Float
B ・2
C
・ 4
D. 8
13•以下正确的表达式是—D ________ .
A. 25・
0%5.0 B. 25%5.0
C. 25%5
・0 D. 25%5
14•表达式!1的值等于—B A. 1 B. 0 C.D. 2
6. 下面哪个关键字用于返回函数值? B
A. switch B ・ return C. for D ・ while
7. 设有变量定义 C
int x = 1 z y = 1 , z = 1 ;
则函数调用 printf (、'%d" z x + y + z )的输出结果为 _______________
A ・1 B. 2 C ・3 D ・4
&以下哪个可以作为c 语言的标识符? A
A ・ _123
B ・ #123
C ・ $123
D ・ 123
9.以下哪个不(!)可以作为C 语言的运算符__B ______________ o
A. !
B.;
C.,
D. & 10•以下哪个是合法的C 语言int 类型常量?
A
A. 12345
B. 12,345 C ・ 1234A 5 D ・ 1234.54 *M ・设有变量定义
B
int i = 4 z j=6,k=9;
则表达式 i + j v k 的值为 _____________
A ・ 1 B. 0 C ・ 10 D ・ 9
12•在C 语言中,char 类型数据所占内存为_A_Byte 。
15•以下关于if 语句的错谋⑴描述是
B —
A. if 语句不一定有else 子句
B.可以用break 语句结束if 语句
C ・if 语句中必须有一对小括号—— “()”
D. —条if 语句中可能有两个“;”,也可能有一个“;” 16 •下面程序段的运行结果是_
C 。
int n;
for ( n = 0;n<9;n++)
{
printf( ”%d” z n );
}
A・ 9 B. 10 C・ 012345678 D・ 8 17•下面条件表达式
(3>4) ?3 :4
的值是_D—o
A. 1
B. 2 C・ 3 D・ 4
以下哪个是合法的c语言int类型常量一D 。
A. 1E5
B. OXhh C・ 093 D・ 234 19•设有数组定义:char array [6];则表达式sizeof array的值为B A・5 B. 6 C・7 D・8 20 •下面函数调用表达式的输出是—C 。
prin0X12 )
A・ 12 B. 24 C・ 18 D・ 16
21.设有变量定义C
int s[3][4];
那么s数组中共有_____ 个int类型的数组元索。
A・3 B・4 C・12 D・24
22 •以下程序段的运行结果是
int x=l;
switch(x)
输出许多值
26 •下面程序段的运行结果是
int n = 6 ; do {
printf ( "%d n , n ); n -= 3 ;
)
while ( n > 0 );
A- 63 B. 630 C. 6 D.死循环,
27 •执行下述程序的输出结果是什么? D
^include <stdio.h> struct AB{
int a; int b; };
int main( void ) {
struct AB ab = {5,3};
printf("%d\n” r ab.a 一 ab.b); return 0;
case 1: case 2 : case 3 : puts ( n 1H ; puts
( ”2 ”); puts
break; break;
A ・1
B ・2
C ・3
D ・ 123
23•表达式(3
> 2 ) ? 4 :5
的值为
C o
A ・3
B ・2
C ・4 D. 5
24•在C 语言中, 字符串
” abc” 占
B
个字节。
A ・3
B ・4
C ・5
D
・
6 25.C 语言规定, 注释应写在
c
之间。
A. “{” 与
a } ”
B. “(”
与
“)”
C a
/* ” 与“ */ ” 与
a j ” D. “ [”
A
・ 3
C
・ 8 D. 2
B. strlen()
D. sqrt()
2&执行下述程序的输出结果是什么?
C
#include <stdio.h> struct AB{
int a; int b; };
void output (struct AB * ); int main( void ) {
struct AB ab = {3,5}; output ( &3b ); return 0; }
void output (struct AB *p ) {
printf(n %d\n n , p->a + p -> b); }
A ・・2
B ・5
C ・8 D. 2
29.下面哪个 _______ B ______ 标准库函数的功能是求字符串长度。
A ・ strcpyO C. strcmpO 30.定义数组一 B
double a[2][3];
若a 的值为0022FF50,那么7的值为
A. 0022FF5A
B. 0022FF50
C. 0022FF51
D. 0022FF52
二、填空题(每空1分,共15分)
1. 预处理命令一般以 # 开头。
2. 如有变量定义
int a[3] = {l,2, 3};
则表达式的值为 1
9.在c 语言中,break 语句可以用在 switch
和循环
语句中,default 关
3. c 语言规定字符串的结束标志为
4. c 语言提供了三种循环语句,即while 、 do while 和 for wh 订e
5. 写出求代数表达式c = -|(F-32)的值的C 语言表达式C=(5.0/9)*(F ・32)。
(假定C 和F 在程序中被定义为double 类型。
)
6. 设有变量定义
int a[3]={l,2};
那么该数组共冇 3 个元素,其中a ⑴的值为 2 °
7. 在C 语言中,表达式3/2的值为 __________ ,表达式 (double ) 3 / 2的值为_
1-5 __ o
& 函数调用语句fopen(M d:\\abc.txt M ,M r");执行时,文件d:\abc.txt 必须存在 。
键字只能用于switch 语句中。
10・设有变量定义
char s [80] = ”ABCD” ;
那么函数调用表达式strlen (s ) 的值为 4 n
三、阅读程序回答相关问题(每空1分,共10分)
1. 请根据注释把程序补充完整,该程序的功能是计算并输出自然数列前n 项的和。
#include <stdio.h> (1) int qiu_he /★自定义函数qiu_he ()的原型声明★/
int main(void) {
int n;
printf (”请输入n 的值:”); scanf("% d",&n); if ( n > 0 )
printf ("自然数列前警d项的和为%d\n n z n , qiu_he (n));
}
int qiu_he( int n )
{
int he = 0 ;
while ( n > 0 )
{
he += n
}
return he ;
}
2.下面程序段的运行结果是5、6、36。
#include <stdio.h>
#define X 5
#define Y (X+l)
int main(void)
{
printf(n%d,%d z %d\n u , X z Y , Y * Y ); return 0;
}
3.下面程序段的运行结果是一25 。
#include <stdio.h>
int main(void)
{ int i / he=0 ;
for (i=l; i<10; i+=2 )
{
he += i ;
}
printf (''总和=%d\n", he);
return 0;
)
4.下面程序段的运行结果是_________
#include <stdio.h>
int main(void)
{
int x=l,y=l;
switch ( x )
case 1 : print f (,f A n );
case 2 : printf(n B n);
default : printf ("C*');
}
printf (n ");
switch ( y )
{
case 1 : printf (n X11) ; break ;
case 2 : print f (,f Y n ) ; break ;
default : printf (f,Z n ) ; break ;
}
return 0;
}
5.下面程序段的功能是:如果x小于y的值,则交换变量x、y的值。
请补全空白。
int x, y ;
讦(一x<y ____ )
{
int temp ;
_ Y :
丫二temp :
}
6.以下程序输出结果是_ 空格6 。
#include <stdio.h>
int main(void)
{
int n = 6 , i ;
for ( i = n ; i > 0 ; i --)
{
if( n % i == 0 )
printf(n%d H , i );
7,以下程序输出结果是_ A 。
#include <stdio.h>
int main(void)
{
char si [80] = ”ABCD”,s2[80] = ”DEF” ;
int i = 0 , j = 0 ;
while ( si [i] != 1\0 * )
i ++ ;
while( (si [i ++] = s2[j ++]) != *\0')
■
r
puts ( sl );
return 0;
)
五、编程题(共1 5分)
1・编写程序,实现求表达式2°+2, +22+... + 2'°的值。
2, 一数组由1, 5, -23, 6, 12, 3, -54, 32等8个整数组成,编写程序求该数组各个元素之和。