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.mfbz.cn/a/888229.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于PHP猫咖私人影院系统【附源码】

效果如下&#xff1a; 系统首页界面 用户注册界面 包厢信息界面 零食信息界面 管理员登录界面 包厢预订界面 猫咪信息界面 研究背景 近年来&#xff0c;随着生活品质的提升和个性化消费需求的增长&#xff0c;猫咖和私人影院等新兴休闲娱乐方式逐渐受到年轻人的青睐。猫咖结合…

电玩体验馆计时软件可以倒计时的软件试用版下载 佳易王ps5计时器管理系统使用教程

一、前言 【软件试用版下载可以点击本文章最下方官网卡片】 电玩体验馆计时软件可以倒计时的软件试用版下载 佳易王ps5计时器管理系统使用教程 1、软件能够记录玩家开始的时间和节数时间&#xff0c;从而计算出时长。 2、根据预设的收费标准&#xff0c;软件可以自动计算出…

如何解决在 nextjs 中使用 sequelize 连接 mysql 报错:Please install mysql2 package manually

解决方案 手动设置 dialectModule 的值为 mysql2。增加 dialectModule 配置即可。 import mysql2 from mysql2 import { Sequelize } from sequelizeconst { DB_DATABASE, DB_USER, DB_PASSWORD, DB_HOST, DB_PORT, DB_LOGGING, DB_POLL_MAX, DB_POLL_MIN, DB_POLL_ACQUIRE, …

厨房用品分割系统源码&数据集分享

厨房用品分割系统源码&#xff06;数据集分享 [yolov8-seg-C2f-DCNV3&#xff06;yolov8-seg-AFPN-P345等50全套改进创新点发刊_一键训练教程_Web前端展示] 1.研究背景与意义 项目参考ILSVRC ImageNet Large Scale Visual Recognition Challenge 项目来源AAAI Global Al ln…

学习threejs,添加户外光照光源

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言二、&#x1f340;绘制任意字体模型…

【AI知识点】反向传播(Backpropagation)

反向传播&#xff08;Backpropagation&#xff09; 是训练神经网络的核心算法&#xff0c;它通过反向逐层计算损失函数对每个权重的梯度&#xff0c;来反向逐层更新网络的权重&#xff0c;从而最小化损失函数。 一、反向传播的基本概念 1. 前向传播&#xff08;Forward Propag…

Hbase要点简记

Hbase要点简记 Hbase1、底层架构2、表逻辑结构 Hbase HBase是一个分布式的、列式的、实时查询的、非关系型数据库&#xff0c;可以处理PB级别的数据&#xff0c;吞吐量可以到的百万查询/每秒。主要应用于接口等实时数据应用需求&#xff0c;针对具体需求&#xff0c;设计高效率…

国外电商系统开发-运维系统文件上传-高级上传

如果您要上传文件到10台服务器中&#xff0c;有3台服务器的路径不是一样的&#xff0c;那么在这种情况下您就可以使用本功能&#xff0c;单独执行不一样的路径 点击【高级】上传

常见的图像处理算法:均值滤波----mean filter

一、什么是均值滤波 均值滤波器是一种常见的图像滤波器&#xff0c;是典型的线性滤波算法。其基本原理是用一个给定的窗口覆盖图像中的每一个像素点&#xff0c;将窗口内的像素值求平均值&#xff0c;然后用这个平均值代替原来的像素值。均值滤波器可以去除噪声、平滑图像、减少…

python爬虫案例——处理验证码登录网站(12)

文章目录 前言1、任务目标2、网页分析3、代码编写4、第三方验证码识别平台(超级鹰)前言 我们在爬取某些网站数据时,可能会遇到必须登陆才能获取网页内容的情况,而大部分网站登录都需要输入验证码才能登录成功,所以接下来我将会通过实际案例来讲解如何实现验证码登录网站 1…

嵌入式硬件设计知识详解

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

C语言初步介绍(初学者,大学生)【上】

1.C语⾔是什么&#xff1f; ⼈和⼈交流使⽤的是⾃然语⾔&#xff0c;如&#xff1a;汉语、英语、⽇语 那⼈和计算机是怎么交流的呢&#xff1f;使⽤ 计算机语⾔ 。 ⽬前已知已经有上千种计算机语⾔&#xff0c;⼈们是通过计算机语⾔写的程序&#xff0c;给计算机下达指令&am…

C#高级编程笔记--字符串和正则表达式

本章的主要内容如下&#xff1a; 创建字符串 格式化表达式 正则表达式​​​​​​​ 1.1 System.String类 System.String是一个类&#xff0c;专门用于存储字符串&#xff0c;允许对字符串进行许多操作。由于这种数据类型非常重要&#xff0c;C#提供了它自己…

‌图片编辑为底片,智能工具助力,创作精彩视觉作品

在当今数字化时代&#xff0c;图像编辑已成为表达创意和美化视觉作品的重要手段。借助智能工具&#xff0c;即使是初学者也能轻松驾驭图片编辑。接下为大家展示图片编辑为底片图片的效果。 1.打开“首助编辑高手”&#xff0c;选择这里“图片批量处理”版块页面上 2.导入保存有…

【AIGC产品经理】面试7家,拿到2个offer,薪资中上水平

Hello&#xff0c;大家好&#xff0c;我是一名不知名的5年B端金融产品经验的产品经理&#xff0c;成功转行AI产品经理&#xff0c;前期面试了北京百度、阿里、理想汽车、百川智能、华为、OPPO等多家大厂面试&#xff0c;但是由于已定居成都&#xff0c;主动终止了后续需要线下的…

uniapp 游戏 - 使用 uniapp 实现的扫雷游戏

0. 思路 1. 效果图 2. 游戏规则 扫雷的规则很简单。盘面上有许多方格,方格中随机分布着一些雷。你的目标是避开雷,打开其他所有格子。一个非雷格中的数字表示其相邻 8 格子中的雷数,你可以利用这个信息推导出安全格和雷的位置。你可以用右键在你认为是雷的地方插旗(称为标…

Web和UE5像素流送、通信教程

一、web端配置 首先打开Github地址&#xff1a;https://github.com/EpicGamesExt/PixelStreamingInfrastructure 找到自己虚幻引擎对应版本的项目并下载下来&#xff0c;我这里用的是5.3。 打开项目找到PixelStreamingInfrastructure-master > Frontend > implementat…

Docker系列-5种方案超详细讲解docker数据存储持久化(volume,bind mounts,NFS等)

文章目录 Docker的数据持久化是什么&#xff1f;1.数据卷&#xff08;Data Volumes&#xff09;使用Docker 创建数据卷创建数据卷创建一个容器&#xff0c;将数据卷挂载到容器中的 /data 目录。进入容器&#xff0c;查看数据卷内容停止并重新启动容器&#xff0c;数据卷中的数据…

Vue2电商项目(八) 完结撒花:图片懒加载、路由懒加载、打包的map文件

一、图片懒加载 安装&#xff1a;npm i vue-lazyload1.3 -s &#xff08;弹幕建议按1.3版本&#xff09; 引入 // 引入懒加载的图片 import hlw from /assets/hulu.jpg // 引入插件 import VueLazyload from vue-lazyload // 引入插件 Vue.use(VueLazyload, {// 懒加载默认的图…

【Linux-基础IO】磁盘的存储管理详解

磁盘的存储管理 由于一个磁盘中包含了大量的扇区&#xff0c;为了方便管理&#xff0c;我们对磁盘进行了分区&#xff0c;其中每个分区又进一步划分为多个块组&#xff08;Block Group&#xff09;&#xff0c;每个块组中包含该块组的数据存储情况以及具体的数据 假设有一个8…