C语言考试题库及答案

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

int m=12345, n=0; do { n+=m%10; m/=10; } while(m); printf(“%d\n”, n); return 0; } 3. #include<stdio.h> #define N 5 int fac(int n) { int z: if(n>1)z=n∗fac(n-1); else z=1; return z; } int main() { printf(“%d\n”, fac(N)); return 0; } 4. #include<stdio.h> void process(char a[ ], int n) { int i; char tmp; for(i=0; i<n/2; i++) tmp=a[i], a[i]=a[n-i-1], a[n-i-1]=tmp; return; } int main()
1
for(i=0;(c=string[i])!=’\0’;i++) if( else if(word=0) { num++; } printf (“There are %d words in this line: \n”, num); \\ 输出结果 return 0; } 二. (10 分) 阅读程序, 指出程序中存在的错误并改正. )word=0; \\ 如果不是空格字符且 word 原值为 0 \\ word \\ 增加一个单词
4. #include<stdio.h> int main() { int i, s; for(i=0, s=0; i++) { S+=i; if(i=10) break; } printf(“i=%d, s=%d\n”, i, s); return 0; } 5. #include<stdio.h> int main() { int i, s; for(i=0, s=0; ;) { i++; if(i<=10) continue; s+=i; break; } printf(“i=%d, s=%d\n”, i, s); return 0; } 四. 按题目要求编写程序. 1. 在主函数中, 在键盘输入一个正整数 m, 调用函数判断该数是否是素数, 并在主函数中输出结果. (10 分) 2. 在主函数中, 由键盘输入两个正整数 m 和 n, 调用两个函数分别计算它们的最大公约数和最小公倍 数, 并在主函数中输出结果. (10 分) 3. 在主函数中, 由键盘输入 M 个无空格的字符串 (每个字符串长度不超过 N), 存放在二维字符数组中, 而后调用二维字符数组为参数的函数, 实现该数组中字符串按 ASCII 码序由小到大排序 (排序方法要 求是冒泡法或选择法), 最后在主函数中将排好序的二维字符数组中每个字符串分别输出. (15 分)

指录入时间
1
数计院 2011 级 3, 4 班《C 语言》期中考试卷
出卷人 黎培兴 2011 年 12 月 1 日∗
一. (10 分) 补充完整程序, 实现程序功能. 1. 将三位整数 n 的十位数的数字变成 0. 例如, 输入三位整数 n 为 738, 输出为 708. #include<stdio.h> int main() { \underline{\hspace{8em}}; printf("输入一个三位整数: "); scanf("\%d",\&n); d2=\underline{\hspace{8em}}; d0=\underline{\hspace{8em}}; /*取出百位数的数字*/ /*取出个位数的数字*/ /*定义自变量*/
(2) 列出每门课程不及格的学生的编号; (3) 分别列出每门课程的前三名和最后三名学生的编号. 6. (5 分) 有 m 个学生 (m<365), 求至少有两人在同一天生日的概率. 假设生日出现在每一天都是等可能 的, 设一年为 365 天. 任意两个学生生日都不同的概率是: p1 = 生日的概率是: p = 1 − p1 . 7. (5 分) 由 n 人围成一圈, 从第 1 号开始报数, 凡报到 3 的倍数的人离开圈子, 不断进行下去, 直到只剩 1 人为止, 请问此人原来的位置. 8. (5 分) 定义函数 z , 参数为直角坐标 (x, y ), 计算函数值. 1 x+y √2x − 3y z (x, y ) = ex+y 0
printf~(“输入三位整数: %d\n”, d2*100+d0); } 2. 计算字符串中单词的个数. #include<stdio.h> int main() { char string[81]; int i, word=0, num=0; char c;
∗ 指录入时间
\\ 输入一个字符串数组 string
3. 字符串 "\\\001a\’,\"0\0\n" 的长度和存储它的字符数组最小长度是: A) 7

7
指录入时间
1
B) 7 C) 8 D) 8
8 8 9
4. 以下语句中关于二维数组定义正确的是: A) i n t a [ ] [ 2 ] = { 0 } ; B) i n t a [ ] [ ]={{0} , { 0 } } ; C) i n t m, n ; s c a n f ("%d%d",&m,&n ) ; i n t a [m] [ n ] ; D) #d e f i n e M 1 #d e f i n e N 2 i n t a [M] [ N ] ; 5. 为了判断两个字符串 s1 和 s2 是否相等, 应当使用: A) if (s1 =s2 ) B) if (s1 ==s2 ) C) if (strcmp(s1 , s2 )=0) D) if (strcmp(s1 , s2 )==0) 二. 阅读下列程序, 请写出程序正确执行结果. (5 × 5 分) 1. #include<stdio.h> int main() { printf (“%d”, 5/3); printf (“%d”, 5%3); printf (“%lf”, 5.0/3); printf (“%d”, (int)5.0/3); printf (“%d\n”, (int)5.0%3); return 0; } 2. #inlclude<stdio.h> int main() { 2
3
{ int i; char str[ ]=“Welcome!” for(i=0; str[i]; i++); process(str, i); printf(“%s\n”, str); return; } 5. #include<stdio.h> #define M 3 void process(int b[M][M]) { int i, j; for(i=0; i<M; i++) for(j=0; j<M; j++) B[i][j]=b[j][i]; return; } int main() { int a[M][M]; int i, j; for(i=0; i<M; i++) for(j=0; j<M; j++) a[i][j]=i∗M+j+1; process(a); for(i=0; i<M; i++) { for(j=0; i<M; j++) printf(“%2d”, a[i][j]); printf(“ \n”); } return 0; }
x 2 , 3yn
输入 x, 求 y =
√ 3 x 的近似值, 误差不超过 10−6 .
3. (10 分) 输入整数 n, 输出数列 a0 , a1 , a2 ,· · · ,ห้องสมุดไป่ตู้an 的值, 每输出 10 个数后自动换行. 其中数列 a0 = 0, a1 = a2 = 1, an+1 = an−2 + 2 an−1 + an . 4. (10 分) 对输入的 n 个实数, 实现由大到小排序, 并计算最大值、最小值、平均值. 5. (10 分) 有 n 名学生, 每人考 m 门功课,要求分别编写函数实现: (1) 计算每门课程的平均分和及格率; 2
(1)#include<stdio.h> (2)int main() (3){ (4) int f(int);
三. (10 分) 简述程序的作用、程序中每一部分的功能. 将 (ii) 部分用流程图表达. 四. 按照要求, 编写 C 语言程序, 实现功能. (70 分) 1. (10 分) 使用多重循环语句, 打印如下九九表. 2. (10 分) 利用迭代公式 yn+1 = 2 3 yn +
6
数计院 2011 级 2, 5 班《C 语言》期中考试卷
出卷人 谭军 2011 年 11 月 15 日∗
1. (12 分) 用流程图表示如下问题的算法: (1) 求 1 + 2 + 3 + 4 + 5 + · · · + 50; (2) 两个数 a, b, 如果 a > b, 则将其互换位置, 否则不变. 2. (8 分) 定义适当的变量类型, 值为你的学号、姓名, 按格式输出你的学号、姓名. 3. (10 分) 求下面算术表达式的值: X=4.5, y=3.5, a=3, b=4 (1) X+a%3*(int)(x+y)%2/4.0; (2) (a+b)/2+(int)X%(int)y; (3) X=a+=a-=a*=a; (4) Y=a+=a-=a*a; 4. (15 分) 输入一个半径 R, 求一个球的体积, 公式为: V = 5. (15 分) 有一个函数: 4 3 πR . 3
数计院 2011 级 1, 6 班《C 语言》期中考试卷
出卷人 冯伟 2011 年 11 月 23 日∗
一. 下列各题四个选项中, 只有一个是正确的, 请选出正确选项. (5 × 3 分) 1. 可用作 C 语言用户标识符的一组标识是: A) my_file B) 2xA C) Year D) Number 2. 有如下程序: #i n c l u d e <s t d i o . h> #i n c l u d e <s t r i n g . h> v o i d main ( ) { int x ; float y; s c a n f ("%3d%",&x,&y ) ; p r i n t f ("%d,% f " , x , y ) ; } 输入数据 12345 678<CR> 后, 程序输出结果是: (这里, “ ” 表示一个空格字符, “ <CR>” 表示回车 符) A) 12345 B) 12345 C) 123 D) 123 678.000 678 45.000000 45 Record Enddo good_bye define stdio.h ABC Case _value sizeof flag name include
4
三. 阅读下列不同循环结构的程序,请写出正确执行结果. (5×5分) 1. #include<stdio.h> int main() { int i=1, s=0; while(i<=10) { s+=i; i++; } printf(“i=%d, s=%d\n”, i, s); return 0: } 2. #include<stdio.h> int main() { int i=1, s=0; do { s+=i; i++; } while(i<=10); printf(“i=%d, s=%d\n”, i, s); return 0; } 3. #include<stdio.h> int main() { int i,s; for(i=0, s=0; i<=10; i++) s+=i; printf(“i=%d, s=%d\n”, i, s); return 0; } 5
cos x, x 0, π y = sin x, , 0<x 2 x2 + 3x, x > π . 2
写一段程序, 输入 x, 输出 y . 6. (20 分) 有四个圆塔, 圆心为 (2, 4), (2, −3), (−5, −2), (−2, 1), 半径为 1, 塔的高度为 5m, 塔外无其他建筑 物, 今输入任一点, 求该建筑物的高度. 7. (20 分) 一个数如果恰好等于它的因子之和, 这个数就称为 “完数”, 例如, 6 的因子为 1, 2, 3, 而 6 = 1+2+3, 因此 6 是 “完数”. 编程序输出 10000 内所有 “完数”.
相关文档
最新文档