【学习记录】第一次随堂测
发布日期:2023-11-14 11:33:03 浏览次数:33 分类:技术文章

本文共 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
 
测试数据 评判结果
测试数据1 完全正确
测试数据2 完全正确
测试数据3 完全正确
测试数据4 完全正确
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#include 
int 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#include 
int 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【学习记录】第三次实验课作业
下一篇:【学习记录】第一次实验课作业

发表评论

最新留言

不错!
[***.144.177.141]2024年07月23日 01时39分51秒