C语言期中自测试卷

选择题

1、若有变量定义int a; double b; 要输入数据存放在a和b中,则下面正确的输入数据的语句为: 【 正确答案: C
A. scanf("%d%f",a,b);
B. scanf("%d%f",&a,&b);
C. scanf("%d%lf",&a,&b);
D. scanf("%d%lf",a,b);

2、为了避免嵌套的条件分支语句if~ else的二义性,特规定else总是与【 正确答案: A】组成配对关系。

A. 在其之前未配对的最近的if
B. 缩排位置相同的if
C. 在其前未配对的if
D. 同一行上的if

3、下面不能使字符数组获得正确字符串的操作是 【 正确答案: C】     
(A)  char s[10] = {"ABCDE"};
(B)  char s[10] = {'A', 'B', 'C', 'D', 'E'};
(C)  char s[10];  s = "ABCDE";
(D)  char s[10];  scanf("%s", s);

4、若有以下语句
int x = 3;
do {
    printf("%d\n", x -= 2);
} while (!(--x));
则上面程序段  【 正确答案: B     

(A)  输出的是1
(B)  输出的是1和-2
(C)  输出的是3和0
(D)  是死循环

5、字符串"\tabc5\0bc"的长度(不包括结束符)是  【 正确答案: D】         
(A)  9
(B)  7

(C)  6
(D)  5

6、以下正确的描述是  【 正确答案: B】    

(A)  continue语句的作用是结束整个循环的执行
(B)  break语句的作用是结束包含它的那层循环
(C)  在循环体内使用break语句或continue语句的作用相同
(D)  使用一次break语句可以从多层循环嵌套中退出

7、以下能正确表示x的取值范围在[15, 80]和[-1, -5]内的C语言表达式为 【 正确答案: A】。
A.(x>=-5)&&(x<=-1)||(x>=15)&&(x<=80)
B.(x<=-5)||(x>=-1) &&(x<=15)||(x>=80)
C.(-1>=x>=-5)||(15<=x<=80)
D.(x<=-1)&&(x>=-1)&&(x<=15)&&(x<=80)

8、若有说明:int a[][3] = {2,3,1,5,7,8,7,9,4}; 则a数组第一维的大小是 【 正确答案: B】。
A.2               B.3              C.4             D.不确定值

9、以下程序的运行结果正确的是 【 正确答案: C】。

#include <stdio.h>

int  main( )

unsigned char a = 8, c;

c = a>>3;

printf("%d\n",c);

       return 0;

}

A.32         B.16           C.1              D.0

10、引用数组元素时,数组下标的数据类型允许是 【 正确答案: C
A.整型常量                                     B.整型表达式

C.整型常量、整型表达式均可          D.任何类型

填空题

1、以下程序段中循环执行次数为                 【 正确答案: 死循环 或 无限循环】。(X次或死循环)

int k = 1;

while(!k==0)

{

    k = k+1;

    printf("%d\n",k);

}

2、下面程序段的运行结果是                  【 正确答案: 600】        
char ch[ ] = "600";
int a, s = 0;
for (a = 0; ch[a] >= '0' && ch[a] <= '9'; a++)
    s = 10 * s + ch[a] - '0';
printf("%d", s);

3、以下程序的运行结果是                  【 正确答案: 4578

#include<stdio.h>
int main()
{
    int i;
    for (i=4;i<10;i++)
    {
        if (i%3==0)
            continue;
        printf("%d",i);
    }
}

4、C语言中,若有定义:int a[10]; 则该数组能访问的下标下限为            【 正确答案: 0】,上限为             【 正确答案: 9】。

5、已知:int a=5,b=6,w=1,x=2,y=3,z=4;执行语句“(a=w>x)&&(b=y>z);”后b 的值为            【 正确答案: 6

编程题

1、同构数

【问题描述】

具有下面性质的数a称为"同构数":设b是a的平方,a与b的低若干位相同。例如,5是25的同构数,25是625的同构数.编程序满足如下要求:
输入两个整数a,b (0<=a, b<=99),找出a、b之间全部的同构数。
【输入形式】

控制台输入0-99之间的两个整数a和b.
【输出形式】

控制台上按照由小到大的顺序输出所有同构数.每一个整数占一行.
【样例输入】

0 30

【样例输出】

0
1
5
6
25

【样例说明】

在0-30之间的同构数有0, 1, 5, 6, 25.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{int a,b,x,y,i;scanf("%d %d",&a,&b);for(i=a;i<=b;i++){x=i;y=x*x;if(i<10&&y%10==x){printf("%d\n",i);}if(i>=10&&y%100==x){printf("%d\n",i);}}return 0;
}

2、二维数组处理

【问题描述】有一个4*4的整型二维数组组成的矩阵,元素值从键盘输入。现要求:

(1)找出其中最大数和最小数,并打印其所在的行号和列号

(2)求对角线元素之和

(3)求此矩阵的转置矩阵

(4)求此矩阵最外围所有元素之和

【输入形式】

按行输入4*4矩阵各元素的值
【输出形式】

最大数及所在的行号和列号

最小数及所在的行号和列号

主对角线元素之和,副对角线元素之和

转置矩阵(按行输出)(%5d形式)

矩阵最外围所有元素之和
【样例输入】

34 53 135 46

678 54 567 5

123 4 67 54

123 56 7 8

【样例输出】

max:678 row:2 col:1

min:4 row:3 col:2

163,740

transport matrix:

   34  678  123  123

   53   54    4   56

  135  567   67    7

   46    5   54    8

sum=1322

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{int a[4][4];int i,j,max,min,sum=0,sum1=0,sum2=0,a1=0,a2=0,a3=0,a4=0;for(i=0;i<4;i++){for(j=0;j<4;j++){scanf("%d",&a[i][j]);}}max=a[0][0];min=a[0][0];for(i=0;i<4;i++){for(j=0;j<4;j++){if(max<a[i][j]){max=a[i][j];a1=i;a2=j;}if(min>a[i][j]){min=a[i][j];a3=i;a4=j;}if(i==j){sum1+=a[i][j];}if(i+j==3){sum2+=a[i][j];}if(i==0||i==3){sum+=a[i][j];}}}sum=sum+a[1][0]+a[2][0]+a[1][3]+a[2][3];printf("max:%d row:%d col:%d\n\n",max,a1+1,a2+1);printf("min:%d row:%d col:%d\n\n",min,a3+1,a4+1);printf("%d,%d\n\n",sum1,sum2);printf("transport matrix:\n\n");for(i=0;i<4;i++){for(j=0;j<4;j++){printf("%5d",a[j][i]);}printf("\n\n");}printf("sum=%d\n",sum);return 0;
}

3、分数化简

【问题描述】

编写程序,从控制台读入一个分数的分子和分母(分数无符号,并且分子小于分母,其大小不会超过int数据类型的表示范围),输出化简后分子和分母不含公约数的分数。

【输入形式】

从控制台输入两个正整数分别表示分子和分母,两整数之间以一个空格分隔。

【输出形式】

在标准输出上输出化简后的分子和分母,以一个空格分隔。

【输入样例1】

26664 479952

【输出样例1】

1 18

【样例1说明】

输入的分子为26664,分母为479952,分母可以被分子整除,输出化简后的分子为1,分母为18。

【输入样例2】

9 24

【输出样例2】

3 8

【样例2说明】

输入的分子为9,分母为24,化简后分子和分母分别为3和8,不含公约数。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{int a,b,i;scanf("%d %d",&a,&b);for(i=b;i>=1;i--){if(a%i==0&&b%i==0){break;}}printf("%d %d\n",a/i,b/i);return 0;
}

4、sinx计算公式

【问题描述】

已知sinx的近似计算公式如下:

 sin x = x - x3/3! + x5/5! - x7/7! + ... + (-1)n-1x2n-1/(2n-1)!

 其中x为弧度,n为正整数。编写程序根据用户输入的x和n的值,利用上述近似计算公式计算sinx的近似值,要求输出结果小数点后保留7位

【输入形式】

从控制台输入小数x(0<=x<=20)和整数n(1<=n<=5000),两数中间用空格分隔。

【输出形式】

控制台输出公式结果:小数点后保留7位。

【样例输入1】

0.5236 4

【样例输出1】

0.5000011

【样例输入2】

0.5236 50

【样例输出2】

0.5000011

【样例说明】

输入x为0.5236,n为4,求得sinx近似计算公式的值为0.5000011,小数点后保留7位;同样,输入x为0.5236,n为50,求得sinx近似计算公式的值为0.5000011,小数点后保留7位。

注意:为保证数据的准确性和一致性,请使用double数据类型保存计算结果

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{double x,s=0,a=1;int n,i,j,z=0;scanf("%lf %d",&x,&n);for(i=1;i<=2*n-1;i+=2){a=1;for(j=1;j<=i;j++){a*=j;if(j==i){s+=pow(-1.0,z)*pow(x,i)/a;z++;}}}printf("%.7f\n",s);return 0;
}

 5、工资

【问题描述】
假设税前工资和税率如下(s代表税前工资,t代表税率):
s<1000    t=0%
1000<=s<2000      t=10%
2000<=s<3000  t=15%
3000<=s<4000     t=20%
4000<=s             t=25%
编写一程序,要求用户输入税前工资额,然后用switch语句计算税后工资额。
【输入形式】
从键盘输入税前工资s,可以是浮点数。
【输出形式】
输出税后工资额,保留小数后两位。
【输入样例】

3000

【输出样例】

2400.00

【样例说明】
税前工资为3000,所以税率为20%,扣除税后工资为2400.00

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{double a,b,s;scanf("%lf",&s);b=s;s=s/1000;switch((int)s){case 0:a=b;break;case 1:a=b*0.9;break;case 2:a=b*0.85;break;case 3:a=b*0.8;break;default:a=b*0.75;break;}printf("%.2f\n",a);return 0;
}

程序片段编程题

1、程序填空:输出m到n之间的所有素数

【问题描述】下面的程序输出m到n之间的所有素数。 
【输入形式】两个正整数m n
【输出形式】m~n之间的素数
【样例输入】

20 40
【样例输出】

  23   29   31   37

#include <stdio.h>
int main()
{int i,j;int m, n;scanf("%d%d", &m, &n);for( i=m; i<=n; i++){for( j=2; j<=i-1; j++)if(i%j==0) break;if(j==i)printf("%4d ",i);}return 0;
}

2、十进制转换为十六进制

【问题描述】下面的函数itoh(n,s)完成将无符号十进制整数转换成十六进制表示,并存入字符串数组s中。程序中用到的函数reverse(char s[])是一个将字符串置逆的函数。

【输入形式】一个无符号整数
【输出形式】对应的十六进制数
【样例输入】255
【样例输出】FF

#include <stdio.h>
#include <string.h>
void reverse(char s[]);//函数声明 
void itoh(unsigned n,char s[]) {int h,i=0;do {h=n%16;		s[i]=(h<=9)?h+'0':h+'A'-10;i++;} while((n/=16)!=0);s[i]='\0';	reverse(s);
}
void reverse(char s[]) {int temp,i,j;for(i=0,j=strlen(s)-1; i<j; i++,j--) {temp=s[i];s[i]=s[j];s[j]=temp;}
}
int main()
{char s[50];unsigned n;scanf("%d",&n);itoh(n,s);  //调用函数实现转换 printf("%s\n",s);return 0;} 

3、学生成绩统计

【问题描述】从键盘输入若干个学生成绩,统计并输出最高分、最低分和平均分,输入-1时结束。
【输入形式】若干个学生成绩
【输出形式】最高分、最低分和平均分
【样例输入】

78 90 87 82 78 76 79 -1

【样例输出】

max:90.00,min:76.00,avg:81.43

#include <stdio.h>
int main()
{float score, max,min,sum;int cnt = 0;sum=0;scanf("%f", &score);max = min = score;while(score!=-1){sum += score;if (max<score)max = score;if (min>score)min = score;cnt++;scanf("%f", &score);		}printf("max:%.2f,min:%.2f,avg:%.2f\n",max, min, sum/cnt);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/441096.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pycharm 远程ssh时,mujuco提示mujoco.FatalError: gladLoadGL error

在ubuntu系统运行时完全没问题&#xff0c;但是使用pycharm远程ssh登录时就会提示这个。 解决方法&#xff1a; 1. 可以修改环境变量 2. export LD_PRELOAD/usr/lib/x86_64-linux-gnu/libstdc.so.6 参考【Mujuco】WSL2安装Mujoco用于python,遇到FatalError,以及图形驱动架构…

【Git原理与使用】远程操作标签管理

远程操作&&标签管理 1.理解分布式版本控制系统2.新建远程仓库3.克隆远程仓库4.向远程仓库推送5.拉取远程仓库6.配置 Git7.配置命令别名8.标签管理8.1创建标签8.2操作标签 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496;…

RTOS系统移植

一、完成系统移植 系统移植上官网寻找合适的系统包&#xff0c;下载后将文件移植入工程文件 二、创建任务句柄、内核对象句柄&#xff08;信号量&#xff0c;消息队列&#xff0c;事件标志组&#xff0c;软件定时器&#xff09;、声明全局变量、声明函数 三、创建主函数&#…

Vue2电商项目(七)、订单与支付

文章目录 一、交易业务Trade1. 获取用户地址2. 获取订单信息 二、提交订单三、支付1. 获取支付信息2. 支付页面--ElementUI(1) 引入Element UI(2) 弹框支付的业务逻辑(这个逻辑其实没那么全)(3) 支付逻辑知识点小总结 四、个人中心1. 搭建二级路由2. 展示动态数据(1). 接口(2).…

【计算机网络 - 基础问题】每日 3 题(二十九)

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?typeblog &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞…

【Docker】03-自制镜像

1. 自制镜像 2. Dockerfile # 基础镜像 FROM openjdk:11.0-jre-buster # 设定时区 ENV TZAsia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # 拷贝jar包 COPY docker-demo.jar /app.jar # 入口 ENTRYPOINT ["ja…

Redis:通用命令 数据类型

Redis&#xff1a;通用命令 & 数据类型 通用命令SETGETKEYSEXISTSDELEXPIRETTLTYPEFLUSHALL 数据类型 Redis的客户端提供了很多命令用于操控Redis&#xff0c;在Redis中&#xff0c;key的类型都是字符串&#xff0c;而value有多种类型&#xff0c;每种类型都有自己的操作命…

Redis篇(最佳实践)(持续更新迭代)

介绍一&#xff1a;键值设计 一、优雅的key结构 Redis 的 Key 虽然可以自定义&#xff0c;但最好遵循下面的几个最佳实践约定&#xff1a; 遵循基本格式&#xff1a;[业务名称]:[数据名]:[id]长度不超过 44 字节不包含特殊字符 例如&#xff1a; 我们的登录业务&#xff0…

Leetcode—76. 最小覆盖子串【困难】

2024每日刷题&#xff08;167&#xff09; Leetcode—76. 最小覆盖子串 C实现代码 class Solution { public:string minWindow(string s, string t) {int bestL -1;int l 0, r 0;vector<int> cnt(128);for(const char c: t) {cnt[c];}int require t.length();int m…

【实战教程】SpringBoot全面指南:快速上手到项目实战(SpringBoot)

文章目录 【实战教程】SpringBoot全面指南&#xff1a;快速上手到项目实战(SpringBoot)1. SpringBoot介绍1.1 SpringBoot简介1.2系统要求1.3 SpringBoot和SpringMVC区别1.4 SpringBoot和SpringCloud区别 2.快速入门3. Web开发3.1 静态资源访问3.2 渲染Web页面3.3 YML与Properti…

[SpringBoot] 苍穹外卖--面试题总结--上

前言 1--苍穹外卖-SpringBoot项目介绍及环境搭建 详解-CSDN博客 2--苍穹外卖-SpringBoot项目中员工管理 详解&#xff08;一&#xff09;-CSDN博客 3--苍穹外卖-SpringBoot项目中员工管理 详解&#xff08;二&#xff09;-CSDN博客 4--苍穹外码-SpringBoot项目中分类管理 详…

pytest(六)——allure-pytest的基础使用

前言 一、allure-pytest的基础使用 二、需要掌握的allure特性 2.1 Allure报告结构 2.2 Environment 2.3 Categories 2.4 Flaky test 三、allure的特性&#xff0c;allure.step()、allure.attach的详细使用 3.1 allure.step 3.2 allure.attach&#xff08;挺有用的&a…

Redis入门第四步:Redis发布与订阅

欢迎继续跟随《Redis新手指南&#xff1a;从入门到精通》专栏的步伐&#xff01;在本文中&#xff0c;我们将深入探讨Redis的发布与订阅&#xff08;Pub/Sub&#xff09;模式。这是一种强大的消息传递机制&#xff0c;适用于各种实时通信场景&#xff0c;如聊天应用、实时通知和…

3、Redis Stack扩展功能

文章目录 一、了解Redis产品二、申请RedisCloud实例三、Redis Stack体验1、RedisStack有哪些扩展&#xff1f;2、Redis JSON1、Redis JSON是什么2、Redis JSON有什么用3、Redis JSON的优势 3、Search And Query1、传统Scan搜索2、Search And Query搜索 4、Bloom Filter1、布隆过…

LabVIEW提高开发效率技巧----阻塞时钟

在LabVIEW开发中&#xff0c;阻塞时钟&#xff08;Blocking Timed Loops&#xff09;是一种常见且强大的技术&#xff0c;尤其适用于时间关键的应用。在这些应用中&#xff0c;精确控制循环的执行频率是关键任务。阻塞时钟通过等待循环的执行完成后再进入下一次迭代&#xff0c…

如何设置LTE端到端系统

LTE Setup Guide Baseline Hardware Requirements 基础硬件要求 需要2个RF前端和2个装有基于Linux的操作系统的PC。系统架构如下&#xff1a; srsUE&#xff1a;需要1个RF前端和1个PC。srsENB&#xff1a;需要1个RF前端和1个PC。srsEPC&#xff1a;需要1个PC。 系统硬件要…

python实现RC4加解密算法

RC4算法 一、算法介绍1.1 背景1.2 密钥调度算法(KSA)1.3 伪随机生成算法(PRGA) 二、代码实现三、演示效果 一、算法介绍 1.1 背景 RC4算法是由Ron Rivest在1987年为RSA数据安全公司设计的一种流密码算法&#xff0c;其安全性主要依赖于其密钥流的随机性和不可预测性。该算法因…

碰撞检测 | 图解视线生成Bresenham算法(附ROS C++/Python/Matlab实现)

目录 0 专栏介绍1 Bresenham算法介绍2 图解Bresenham算法3 算法流程4 仿真实现4.1 ROS C实现4.2 Python实现4.3 Matlab实现 0 专栏介绍 &#x1f525;课设、毕设、创新竞赛必备&#xff01;&#x1f525;本专栏涉及更高阶的运动规划算法轨迹优化实战&#xff0c;包括&#xff…

架构设计之解析CQRS架构模式!

文章首发到公众号&#xff1a;月伴飞鱼 文章内容收录到个人网站&#xff0c;方便阅读&#xff1a;http://hardyfish.top/ 文章内容收录到个人网站&#xff0c;方便阅读&#xff1a;http://hardyfish.top/ 文章内容收录到个人网站&#xff0c;方便阅读&#xff1a;http://har…

【可视化大屏】Python Flask框架介绍

为了能显示真实数据&#xff0c;使用flask快速搭建了一个web应用&#xff0c;然后连接数据库&#xff0c;读取数据库里的数据来进行大屏可视化显示&#xff08;btw&#xff1a;数据是从车主之家网站上爬虫爬的&#xff09; 家人们&#xff01;记得使用专业版的pycharm&#xf…