厦门大学 C语言程序设计2016模拟题讲评及课程复习

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、选择题(本模块每题2分, 共40分)
1. C语言程序的基本组成单位是( C )。 A 主程序 B 子程序 C 函数 D 过程 知识点:P5~7 C语言程序的基本构成。 2. 下列合法的字符常量是( D )。 A "c" B c C 'char' D '\n' 知识点:P20~25 常量
3. 设有定义:char x[ ]= "abcd"; 则( B )。 A 数组x的长度为4 B 数组x的长度为5 C 定义数组时缺省长度, 默认为255 D 定义数组时缺省长度, 出错 知识点:P151~154 C字符型数组及字符串 4. 关于C语言变量的叙述, 正确的是( C )。 A 变量名中的英文字母不区分大小写 B 如果定义变量时没初始化, 其值设置为0 C 可以输出变量的地址 D 变量的数据类型决定变量的作用域 知识点:P25~27 变量; P180 指针; P121~127 变量作用域及存储类别
知识点: P30 /(除法运算符)、%(求余运算符)、求某个整数 的个位、十位、百位、......
2. 请在考生文件夹下的prog2.cpp文件中编写程序, 要求:
计算数列S=1-1/3+1/5-1/7+1/9-1/11+……的值, 直到最后一项
的绝对值小于0.000001为止。 #include <stdio.h>
知识点: P31 自增++、自减--运算符
2. 考生文件夹下的图形文件read2.bmp描述的是程序代码, 请 阅读该程序, 把程序的运行结果写在文本文件read2.txt中。
//read2.bpm void fun(int x, int *y) { x=5; *y=5; } void main( ) { int a=2, b=2; fun(a, &b); printf("%d\n%d\n", a, b); }
知识点: P181~1百度文库3 指针的运算: &取地址运算符, *指向运算符 P184 指针变量作为函数参数。例10.2.1
三、改错题(本模块共12分, 每题6分)
1.考生文件夹下有一程序文件error1.cpp, 修改并执行程序。 //error1.cpp //求满足1+2+3+4+……+n<1000时, n的最大值及数列之和。 #include <stdio.h> void main( ) { int sum, n=1; // int sum=0, n=1; while sum<1000 // while (sum<1000) { sum=sum+n; n++; } n--; sum= ; // sum=sum-n-- ; printf("n=%d\tsum=%d\n", n, sum); }
数据位数控制不考。
第 4章 条件运算符不考, switch语句不考。 第 5章 循环结构重点是while和for语句, do…while、 break、continue、goto等语句不考。程序设计重点 掌握单重循环, 二重循环仅限于简单应用。
第 6章 标准库函数仅限能正确使用abs、fabs 和sqrt函 数即可。在自定义函数中, 函数嵌套和函数递归不考。 第 7章 条件编译不考。 第 8章 多维数组不考, 字符串函数不考。 第10章 指针的概念及用法 第9、11章 只作简单了解
14. 设已定义 char str[6]={ 'a ', 'b ', '\0 ', 'c ', 'd ', '\0 ' }; 执行 语句printf("%s", str);后, 输出结果为( B )。 A a B ab C abcd D ab\0cd\0 知识点:P153~154 字符数组的输入、输出 15. 执行下面语句后, b[4]的值为( D )。 int b[5], i; for (i=0; i<=4; i++) b[i]=i*3; A 0 B 4 C 1 D 12 知识点:P78~79 for语句; P142 数组的引用
19. 引用数组元素时, 数组元素下标不可以是( C )。 A 字符常量 B 整型变量 C 字符串 D 算术表达式 知识点:P141~143 数组定义及引用 20. 下列有关预处理命令的叙述, 错误的是( C )。 A 预处理命令必须以字符#开头 B 预处理命令不占用程序运行时间 C 命令#include<文件名>和#include “文件名”作用完全相同 D 宏名不一定要用大写英文字母 知识点:P131 编译预处理定义的格式 # define、# include、# if、# endif、# ifdef、# ifndef
for (int i=1, s=0; i<=n; i++) { s+=i; printf("%d\t", i); if (i%5==0) printf("\n"); } printf("\ns=%d\n",s);
知识点: P84 while语句; P31 自增++、自减--运算符
2. 考生文件夹下有一程序文件error2.cpp, 修改并执行程序。
#include <stdio.h> #define M 1+2 void main() { char str[6]={'a','b','\0','c','d','\0'}; int x=8,*p=&x; int b[5],i; printf("%s\n",str); for (i=0; i<=4; i++) b[i]=i*3; printf("%d\n",b[4]); printf("%d\n", 0<=x<=3); printf("%d\n", 2*M*3); printf("%d\n", *p); printf("%c\n", str['\0']); }
二、阅读题(本模块共12分, 每题6分)
1. 考生文件夹下的图形文件read1.bmp描述的是程序代码, 请 阅读该程序, 把程序的运行结果写在文本文件read1.txt中。
//read1.bpm void main( ) { int a=6, b=5; if (a<b) { a=b; b=a; } else { a++; ++b; } printf("%d\n%d\n", a, b); }
16. 设已定义 int x=8, *p=&x; 则printf("%d\n", *p); 的输出结 果为( B )。 A x的地址 B 8 C p的值 D p的地址 知识点:P180~184 指针及其运算 17. 已知有宏定义 #define M 1+2, 则表达式2*M*3的值是( B )。 A 18 B 8 C 6 D 12 知识点:P130~134 宏(不带参数及带参数)定义宏展开 18. x=8; 则关系表达式0<=x<=3的值为( C )。 A true B false C 1 D 0 知识点:P57~59 关系表达式及逻辑表达式
8. 下列叙述错误的是( C )。 A 形参是局部变量 B 全局变量不一定在所有的函数中有效 C 主函数中定义的变量在整个程序中都是有效的 D 其他函数中定义的变量在主函数中不能使用 知识点:P121~124 局部变量及全局变量 9. 设有如下的函数定义:void ggg(float x) { return x*x; } 则函数返回值的类型是( B )。 A 与参数x的类型相同 B 是void C 是int D 出错 知识点:P105~107 函数定义
知识点: P105 P110 P112
函数定义 函数的声明与函数原型 函数的返回值
四、设计题(本模块共36分, 每题9分)
1. 请在考生文件夹下的prog1.cpp文件中编写程序, 输入一 个3位的整数, 如果该数的个位数和百位数相同, 则输出“回 文数”, 否则输出“不是回文数”。 //prog1.cpp #include<stdio.h> void main() { int n; printf("请输入一个3位的整数: "); scanf("%d",&n); if (n%10==n/100) printf("回文数\n"); else printf("不是回文数\n"); }
//定义一个函数fun(a), 函数返回正整数a的位数, 在主函数中输入一个正整数, //调用fun函数, 输出该数的位数。 #include<stdio.h> // int fun(int a); // int fun( int ); void main( ) { // int fun(int a); // int fun( int ); int a, k; printf("请输入一个正整数:"); scanf("%d", &a); k=fun(a); printf("%d的位数是%d\n", a, k); } int fun( a) // int fun(int a) { int i=0; while(a) { a=a/10; i++; } return // return i; }
#include <math.h>
void main() { float s=0.0, t=1.0, n=1; while (fabs(t/n)>=1e-6) { } s+=t/n; n=n+2; t=-t; } printf("1-1/3+1/5-1/7+1/9-1/11+......=%f\n", s);
12. 下列运算符中, 优先级最高的是( B )。 A = B + C && D != 知识点:P29 常用运算符的优先级及结合性 13. 设有定义 int a[10]={ 0 }; 则说法正确的是( A )。 A 数组a有10个元素, 各元素的值为0 B 数组a有10个元素, 其中a[0]的值为0, 其他元素的值不确定 C 数组a有1个元素, 其值为0 D 数组初始化错误, 初值个数少于数组元素个数 知识点:P141~144 数组的定义、引用、初始化
5. 语句 if (x) 和 ( B )等价。 A if (x<>0) B if (x!=0) C if (x=0) D if (x==0) 知识点:P87 while (!x)与while (x= =0), while (k!=0)与while (k) 等价 6. 合法的C语言标识符是( B )。 A 2a B IF C if D a-b 知识点:P15~16 关键字、特定字、标识符 7. 设已定义 int a, *p; 下列赋值表达式中正确的是( C )。 A *p=a B p=*a C p=&a D *p=&a 知识点:P180~184 指针及其运算
10. 当全局变量与函数内部的局部变量同名时, 则在函数内部 ( A )。 A 局部变量有效, 全局变量被暂时屏蔽 B 全局变量有效, 局部变量无效 C 全局变量与局部变量都有效, 全局变量的值被局部变量修改 D 全局变量和局部变量不能同名 知识点:P121~124 全局变量及局部变量 11. 下列关于函数的描述中, 错误的是( A )。 A 函数必须返回一个值 B 函数的类型可以缺省定义 C 函数可以没有参数 D 函数可以包含多个return语句 知识点:P105~113 函数的定义、调用、返回值
1. 启动运行Microsoft Visual C++ 6.0 2. 选“打开” 命令, 在考生文件夹下选 prog1.cpp/prog2.cpp/prog3.cpp/prog4.cpp 3. 编写程序 4. 编译, 会提示创建默认项目工作区文件, 选“是”。 5. 组建 6. 执行 7. 退出Microsoft Visual C++ 6.0
相关说明:
选择题由机器改卷, 其它题目由人工改卷
考试题目有三分之二在平时的作业中
考试题型和模拟题相同, 考试范围与模拟题相似 考试内容90%在2~8章
第2章
重点考核常用运算符(+、-、*、/、%、==、<、 >、!=、&&、||、=、简单的++和--)的正确使用。 第 3章 printf和scanf函数只考%d、%f、%c和%s格式,
《C语言程序设计》 课程复习及模拟题讲评
二○一六年十二月
《C语言程序设计》试卷各类题目分数分布情况
一、选择题 40分(20小题, 每题2分 )
主要考核基本概念, 词法, 语法和小程序阅读等。
二、阅读题 12分(2小题, 每题6分)
三、改错题 12分(2小题, 每题6分) 四、设计题 36分(4小题, 每题9分)
相关文档
最新文档