北航2012年8系c语言期末考试题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C. 编译错误 D. 能够运行,没有结果
6. 函数定义时写在括号中的内容通常被称为
科A. 形式变量
B. 形式参数
C. 实际变量 D. 实际参数
生 7. 下列哪个语句是合法的函数原型
A. float roi(int, double);
C. roi(3,amt);
考 B. printf(“%f”,roi(3,amt)); D. float roi(int yrs, double rate);
11. 字符串是一种 C 语言的基本数据类型。
北12. 13.
局部静态变量的生命周期一直到程序运行结束才终止。 递归函数的功能都能够通过循环语句来实现。
航14. 程序为 gets(message),从键盘输入 This is a string,则实际上存储进入 message 变量的是 This. 15. 使用 gets()函数时,\n 会被\0 替代。
float prediction(float, int) int main() {
题
float current,estimation;
int timeDuration;
printf(“Please enter the current price: ”); scanf(“%f”,¤t);
printf(“Please enter the estimation period(in second): ”); scanf(“%d”,&timeDuration);
A
三、编程题 „„„„„„„„„„„„„„„„„„„„„„„( 50 分)
1. (利用指针实现多返回值)下面一段程序从键盘读入秒数后可转换为等长的年月
北
日输出。试补充函数 time 的函数定义。(15 分)
#include <stdio.h>
void time(int, int *, int *, int *);
20.
考 strcpy(message, “abcedf”);
birth.month 是指 month 结构体的 birth 成员。
试 二、选择题„„„„„„„„„„„„„„„„„„„„„„„„„„(
30
分)
1. 下面哪个数据类型通常被称为“单精度”类型
样
A.float
C. int
B. double
A
printf(“The estimated stock price is %f”, prediction(current, timeDuration));
return 0; }
北3. (冒泡排序)下面一段函数调用了名为 BubbleSort 的函数来对于整数数组的元 素进行排序。(每小题 10 分,共 20 分) 航#include <stdio.h> int main() 本 { void BubbleSort(int [5]) int nums[5] = {1,12,5,3,29}; 科 BubbleSort(nums); printf(“%d”, nums[3]); return 0; } 生 (1). 画出 BubbleSort 函数的流程图,请严格遵循主函数定义的变量名称。 (2). 写出 BubbleSort 函数定义。 考 试 样 题
D.short int
2. 下列表达式中与 sum = sum + 10 等价的是
题
A.sum=+ 10
C. sum = sum++10
B. sum+= 10
D. sum++
3. 输出整数时显示符号、控制数字长度为 10 并左对齐的命令是
A.%-+10d
C. %+10d
B. %-10d
D. %*10d
2. 同时包括整型值和浮点型值的表达式应被称为浮点型表达式。
题 3. 变量声明的作用仅限于定义变量存储的空间大小。
4. 表达式 amount + 1892 == 1000 + 10 * 5 是合法的 C 语言表达式。
5. =+ 是合法的 C 语言运算符。
6. && 运算符的优先级高于 || 运算符。
11. 字符数组 destString 的内容为”Hello”, 当执行 strcat(destString,
北
“ world!”)后,destring 的内容是
A. “world!”
C. “!”
航B. “helloworld!”
12. 将字符串写入到文件的函数是
D. “Hello world”;
本A. fputc()
A
4. 下面哪个运算符的优先级最高?
A.!
C. &&
B. *
D. <
北 5. 下列程序的运行结果是 int age = 0; if(age = 40)
航printf(“Happy Birthday!”); else printf(“Sorry”);
本A. Happy Birthday! B. Sorry
航int main() { int hrs = 0, mns = 0, scs = 0;
本int seconds;
printf ( "Enter a number of seconds: " );
科 scanf ( "%d", &seconds );
time(seconds, &hrs, &mns, &scs);
A
班号
学号
姓名
成绩
《 C 语言程序设计 》期末考试卷
北注意事项:1、判断题和选择题结果写在本页表格中,不要写在答题纸上。
航 2、请勿将答题纸拆离试卷,并在答题纸上写清班级、姓名、学号。 3、考试时间 120 分钟,满分 100 分。
本 判断题(T 代表 True,F 代表 False, 每题 1 分,共 20 分)
16. 17.
本C 语言的文件操作参数包括 r,w 和 p。
如果指针 gPtr 指向一个整数数组的首个元素存储位置,则命令*(gPtr + 4*4)
科 引用的是该数组第 5 个元素的值。
18. 数组的地址不能通过赋值语句来改变。
生 19. 下列程序符合 C 语言的要求: char *message;
7. 在 switch 语句当中,如果忘记使用 break 命令,则从符合条件的 case 语句开始,
所有的 case 语句都会被执行。
8. break 语句只能用于 switch 和 while 循环当中。
9. 伪随机数并不是真正的随机数,但是对于刻划大多数的随机问题而言已经足够
A
满足要求。
10. 在 C 语言当中,函数不能被嵌套在另一个函数当中声明。
1
2
3
4
5
6
7
8
9
10
11
12
科13
14
15
16
17
18
19
20
生 单项选择题(每题 2 分,共 30 分)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
考 15
试 一、判断题„„„„„„„„„„„„„„„„„„„„„„„„„„( 20
分)
样 1. 函数的首部行(header line)必须放在函数声明的第一行。
题
{
int i = 0;
while(string2[i] != „\0‟)
{
string1[i] = string2[i];
i++;
}
________
}
A
A. return 0;
C. string1[i] = „\0‟;
B. string1[i-1] = „\0‟;
D. string1[i+1] = „\0‟;
A. 一定合法 B. 完全不合法
考 C. 当 miles 已经被声明为整型变量时合法
D. 当 miles 已经被声明为整型数组时合法
15. 下列程序中下划线部分可替代为
/* copy string2 to string1 */ void strcopy(char string1[], char string2[])
B. fputs()
C. fwrites() D. fprintf()
科 13. grade 是整型数组, 则&grade[3]等价于
A. &grade[0]+3
C. &grade[0]+12
生 B. &grade[0]+4
D. &grade[0] + 3/4
14. 语句 int *ptNum = &miles;
样 C. char code ={„s‟,‟a‟,‟m‟,‟i‟};
D. char code[*]={„s‟,‟a‟,‟m‟,‟i‟};
10. 下列程序中横线上缺少的内容是
/*copy string2 to string1*/ void strcopy(char string1[], char string2[])
考
试 2. (股价预测函数)股票价格通常被认为可以近似成一组随机游走的布朗运动:若
样 某一时刻的股价为 x, 则下一时间单位的股价仅可能是 x-Δ, x+ Δ 中的一个。写出
预测一段时间后股价的函数 prediction 的定义,设 Δ 为 0.01。(15 分)
#include <stdio.h>
8. 下列哪个语句可以生成 1 到 N 之间的随机整数
wk.baidu.com
试 A. 1+(int) rand()/N
C. (int) rand()/N
B. 1+(int) rand()%N
D. (int) rand()%N
9. 下列哪个字符串初始化语句是正确的?
A. char code[3]={„s‟,‟a‟,‟m‟,‟i‟}; B. char code[]={„s‟,‟a‟,‟m‟,‟i‟};
生 printf ( "\nThe number of hours is %d", hrs );
printf ("\nThe number of minutes is %d", mns ); printf ( "\nThe number of seconds is %d\n", scs );
return 0; }
试
{ int i = 0; while(string1[i] = string2[i]) i++;
样
}
A. while(*string1 = *string2);
题 C. while(*string1++ = *string2++);
B. while(*string1 = string2);
D. while(*++string1 = *++string2);