
本文共 5077 字,大约阅读时间需要 16 分钟。
选择题
1. | 首次提交时间:2022-04-27 09:40:12 最后一次提交时间:2022-04-27 09:40:12 下面程序的功能是将字符串s中所有的字符’c’删除。请选择填空。 #include<stdio.h> main() { char s[80]; int i,j; gets(s); for(i=j=0;s[i]!=’\0’;i++) if(s[i]!=’c’) 【正确答案: a】 s[j]=’\0’; puts(s); }(A)s[j++]=s[i]; (B)s[++j]=s[i]; (C)s[j]=s[i];j++; (D)s[j]=s[i]; 得分:5.00 |
---|---|
2. | 首次提交时间:2022-04-27 09:47:48 最后一次提交时间:2022-04-27 09:47:48 要打开一个已存在的非空文件“file”用于修改,正确的语句是: 【正确答案: D】 A.fp=fopen("file","r"); B.fp=fopen("file","a+"); C.fp=fopen("file","w"); D.fp=fopen("file","r+"); 得分:5.00 |
3. | 首次提交时间:2022-04-27 09:54:44 最后一次提交时间:2022-04-27 09:54:44 下述对C语言字符数组的描述中错误的是 【正确答案: c】 (A) 字符数组可以存放字符串 (B) 字符数组的字符串可以整体输入,输出 (C) 可以在赋值语句中通过赋值运算符"="对字符数组整体赋值 (D) 不可以用关系运算符对字符数组中的字符串进行比较 得分:5.00 |
4. | 首次提交时间:2022-04-27 10:01:02 最后一次提交时间:2022-04-27 10:01:02 以下程序的输出是 【正确答案: d】。 #include<stdio.h> main() {printf("%d",null);} A 0 B -1 C 1 D 变量无定义 得分:5.00 |
5. | 首次提交时间:2022-04-27 10:02:26 最后一次提交时间:2022-04-27 10:02:26 有下面的程序段: char a[3], b[] = "China"; a = b; printf("%s", a);a 则 【正确答案: d】(A) 运行后将输出China (B) 运行后将输出Ch (C) 运行后将输出Chi (D) 编译出错 得分:5.00 |
6. | 首次提交时间:2022-04-27 10:06:29 最后一次提交时间:2022-04-27 10:06:29 已知学生记录的定义为: struct student { int no; char name[20]; char sex; struct { int year; int month; int day; }birth; }; struct student s; 假设变量s中的“生日”应是“1988年5月10日”,对“生日”的正确赋值语句是 【正确答案: d】 (A) year=1988; month=5; day=10; (B) brith.year=1988; birth.month=5; birth.day=10; (C) s.year=1988; s.month=5; s.day=10; (D) s.birth.year=1988; s.birth.month=5; s.birth.day=10; 得分:5.00 |
7. | 首次提交时间:2022-04-27 10:08:02 最后一次提交时间:2022-04-27 10:08:02 在C语言中的if语句中,用作判断的表达式为 【正确答案: d】 A 关系表达式 B 逻辑表达式 C 算术表达式 D 任意表达式 得分:5.00 |
8. | 首次提交时间:2022-04-27 10:10:49 最后一次提交时间:2022-04-27 10:10:49 对 for (表达式1; ; 表达式3)可理解为 【正确答案: b】 (A) for (表达式1; 0; 表达式3) (B) for (表达式1; 1; 表达式3) (C) for (表达式1; 表达式1; 表达式3) (D) for (表达式1; 表达式3; 表达式3) 得分:5.00 |
9. | 首次提交时间:2022-04-27 10:14:54 最后一次提交时间:2022-04-27 10:14:54 以下正确的函数声明形式是 【正确答案: c】 (A) double fun(int x, int y) (B) double fun(int x; int y) (C) double fun(int x, int y); (D) double fun(int x, y); 得分:5.00 |
10. | 首次提交时间:2022-04-27 10:15:17 最后一次提交时间:2022-04-27 10:15:17 对以下说明语句的正确理解是 【正确答案: b】 int a[10] = {6, 7, 8, 9, 10}; (A) 将5个初值依次赋给a[1]至a[5] (B) 将5个初值依次赋给a[0]至a[4] (C) 将5个初值依次赋给a[6]至a[10] (D) 因为数组长度与初值的个数不相同,所以此语句不正确 得分:5.00 |
判断题
1. | 首次提交时间:2022-04-27 10:18:35 最后一次提交时间:2022-04-27 10:18:35 变量的指针就是变量的地址 【 正确答案:正确】 正确 错误 得分:6.00 |
---|---|
2. | 首次提交时间:2022-04-27 10:23:24 最后一次提交时间:2022-04-27 10:23:24 若有定义int a,*p=&a,*q=p;则p、q都指向a 【 正确答案:正确】 正确 错误 得分:6.00 |
3. | 首次提交时间:2022-04-27 10:23:34 最后一次提交时间:2022-04-27 10:23:34 当以参数w打开文件时,若指定路径下已有同名文件,则覆盖原有文件 【 正确答案:正确】 正确 错误 得分:6.00 |
4. | 首次提交时间:2022-04-27 10:23:36 最后一次提交时间:2022-04-27 10:23:36 常量1和常量'1'是相等的。 【 正确答案:错误】 正确 错误 得分:6.00 |
5. | 首次提交时间:2022-04-27 10:35:45 最后一次提交时间:2022-04-27 10:35:45 C语言中,执行表达式(*p)++后p的指向改变了 【 正确答案:错误】 正确 错误 |
编程题
# | 题目 | 分值 | 批阅信息 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1. | 求中位数 求中位数 【问题描述】输入n和n个数,求大于中位数的数据个数(n小于50).中位数是把一列数从小到大排列后,中间的那个数!如果那一列数是偶数,就取中间两个数的平均数!例如: 第1组数:1、2、3、6、7的中位数是3。 第2组数:1、2、3、5的中位数是2.5。 【输入形式】输入正整数n和n个实数 【输出形式】1.输出中位数保留小数1位。中位数输出占一行。2.输出大于中位数的数据个数占一行。 【样例输入】 4 1 2 3 5 【样例输出】 2.5 2 | 10.00 | 得分10.00 最后一次提交时间:2022-04-27 13:41:23 共有测试数据:4 平均占用内存:1.218K 平均CPU时间:0.00863S 平均墙钟时间:0.01016S
| ||||||||||
2. | n的阶乘 【问题描述】 输入一个正整数n(大于等于1,小于100),编程计算并输出n的阶乘。 【输入形式】 从标准输入读入一个正整数n(大于等于1,小于100)。 【输出形式】 在标准输出上输出计算出的n的阶乘。 【样例输入】 30 【样例输出】 265252859812191058636308480000000 【样例说明】 输入正整数n为30,30的阶乘为265252859812191058636308480000000。 【评分标准】该程序要求输出正整数的阶乘,提交程序文件名为exam2.c或exam2.cpp。 |
编程题一
#define _CRT_SECURE_NO_WARNINGS#includeint main(void){ int n, i, j, q, x = 0, y = 0; float a[50], h, m; scanf("%d", &n); if (n >= 50) /*n小于50*/ printf("error\n"); else { for (i = 0; i < n; i++) /*将输入的n个数赋入数组*/ scanf("%f", &a[i]); for (j = 0; j < n-1; j++) /*比较n-1轮次,完成数据从小到大排列*/ { for (i = 0; i < n-1-j; i++) /*从第一位开始比较*/ { if (a[i] > a[i + 1]) /*冒泡排序*/ { m = a[i]; a[i] = a[i + 1]; a[i + 1] = m; } } } if (n % 2) { for (i = (n - 1) / 2 + 1; i < n; i++) /*计算大于中位数的数字数量*/ if (a[i] > a[(n - 1) / 2]) x++; printf("%.1f\n%d\n", a[(n - 1) / 2], x); } else { q = n / 2; h = (a[q - 1] + a[q]) / 2; for (i = n / 2 + 1; i < n; i++) /*计算大于中位数的数字数量*/ if (a[i] > h) y++; printf("%.1f\n%d\n", h, y); } } return 0;}
编程题二
#define _CRT_SECURE_NO_WARNINGS#includeint main(){ int n, i, a; a = 1; scanf("%d", &n); for (i = 1; i <= n; i++) a = a * i; printf("%d", a); return 0;}
测试总结:
涉及不熟练知识点:
- 字符数组相关:
不可以在赋值语句中通过赋值运算符"="对字符数组整体赋值;
- 函数相关:
函数的声明是一条语句,因此结尾需要 " ; ";
- 指针相关:
(*p)++ 先取指针所指的值,值再增一;
*p++ 先取指针所指的值,指针再增一;
++*p 先取指针所指的值,并将该值自增一;
*++p 先将指针自增一,再取出该值;
- 结构体相关:
暂待掌握。
- 文件相关:
文件打开模式:
r:以只读的方式打开文本文件,文件必须存在;
w:以只写的方式打开文本文件,文件若存在则清空文件内容从文件头部开始写,若不存在则根据文件名创建新文件并只写打开;
a:以只写的方式打开文本文件,文件若存在则从文件尾部以追加的方式开始写,文件原来存在的内容不会清除,若不存在则根据文件名创建新文件并只写打开;
r+:以可读写的方式打开文本文件,下一步操作前不会对文件原本内容造成影响;
w+:以可读写的方式打开文本文件,其他与w一样;
a+:以可读写的方式打开文本文件,其他与a一样;
- 其他:
"null"无特殊含义;
"NULL"是系统定义的一个符号常量,值为0;
冒泡排序的使用——双重循环的嵌套;
浮点型与整型之间直接用"="符号赋值转换可能导致数据错误;
- 特例:
大数额阶乘运算——未解决
转载地址:https://blog.csdn.net/m0_68184427/article/details/124463343 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关于作者
