C语言程序设计之基础易错题锦集2

news2024/9/27 12:08:18

C语言程序设计之基础易错题锦集2

  • 自加自减
    • 代码2_0_1
    • 运行结果2_0_1
    • 代码2_0_2
    • 运行结果2_0_2
  • 问题2_1
    • 解答2_1
  • 问题2_2
    • 结果2_2
  • 问题2_3
    • 结果2_3
  • 问题2_4
    • 结果2_4
  • 问题2_5
    • 结果2_5
  • 问题2_6
    • 结果2_6

自加自减

代码2_0_1

#include<stdio.h>

main(){
	int a,b,c,d;
	a=b=c=d=10;
	printf("%d\n", a++);
	printf("%d\n", ++b);
	printf("%d\n", c--);
	printf("%d\n", --d);
}

运行结果2_0_1

Result_2_0_1
        后缀:使用变量之后再自加或者自减;前缀:自加或自减之后再进行运算。

代码2_0_2

#include<stdio.h>

main(){
	int n=2,k=0;
	while(k++&&n++>2);
	printf("%d %d\n", k, n);
}

运行结果2_0_2

Resulr_2_0_2
        没有进入while循环,故而自加没运行。

问题2_1

        以下程序输出结果是?

#include<stdio.h>

main(){
	double d=3.2;
	int x,y;
	x = 1.2;
	y = (x+3.8)/5.0;
	printf("%d", d*y); 
}

解答2_1

        首先程序先执行 x=1.2;根据赋值运算的类型转换规则,先将 double 型的常量 1.2 转换成 int 型,即取整为 1。然后将 1 赋给变量 x,接下来执行语句 y=(x+3.8)/5.0,结果为 0。于是变量 y 的值为 0,d*y 的值也为 0。

问题2_2

        以下程序输出结果是?

#include<stdio.h>

struct st{
	int x;
	int *y;
}*p;
int dt[4] = {10, 20, 30 ,40};
struct st aa[4] = {50, &dt[0], 60, &dt[0], 
				   60, &dt[0], 60, &dt[0],};
main(){
	p = aa;
	printf("%d\n", ++(p->x));
}

结果2_2

Result_2_2

问题2_3

         以下程序输出的结果是?

#include<stdio.h>

main(){
	char s[] = "012xy\08s34f4w2";
	int i, n=0;
	for(i=0; s[i]!=0; i++)
		if(s[i]>='0'&&s[i]<='9') n++;
	printf("%d\n", n);
}

结果2_3

Result_2_3

问题2_4

         以下程序输出的结果是?

#include<stdio.h>

main(){
	int x=20;
	printf("%d ", 0<x<20);
	printf("%d\n", 0<x&&x<20);
}

结果2_4

Result_2_4

问题2_5

         以下程序输出的结果是?

#include<stdio.h>
#include<string.h>

struct A{
	int a;
	char b[10];
	double c;
};

struct A fun(struct A t){
	t.a = 1002;
	strcpy(t.b, "Shoudao");
	t.c = 1202.0;
	return t;
}

main(){
	struct A a={1001, "Zhiyi", 1098.0};
	a = fun(a);
	printf("%d,%s,%6.1f\n", a.a, a.b, a.c);
}

结果2_5

Result_2_5

问题2_6

         函数的功能是:对 N 名学生的学习成绩,按从高到低的顺序找出前 m(m<=10)名学生,并将这些学生的数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。

#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<malloc.h>

#define N 10

typedef struct ss{
	char num[10];
	int s;
}STU;

STU *fun(STU a[], int m){
	STU b[N], *t;
	int i, j, k;
	t = (STU*)calloc(m, sizeof(STU));
	for(i=0; i<N; i++)
		b[i] = a[i];
	for(k=0; k<m; k++){
		for(i=j=0; i<N; i++)
			if(b[i].s>b[j].s)
				j = i;
	strcpy(t[k].num,b[j].num);
	t[k].s = b[j].s;
	b[j].s = 0;
	}
	return t;
}

outresult(STU a[], FILE*pf){
	int i;
	for(i=0; i<N; i++)
		fprintf(pf, "No=%s Mark=%d\n", a[i].num, a[i].s);
	fprintf(pf,"\n\n");
}

void main(){
	STU a[N] = {{"A01", 81}, {"A02", 89}, {"A03", 66}, 
			    {"A04", 87}, {"A05", 77}, {"A06", 90},
				{"A07", 79}, {"A08", 61}, {"A09", 80},
				{"A10", 71}};
	STU *pOrder;
	int i, m;
	system("CLS");
	printf("***** THE RESULT *****\n");
	outresult(a, stdout);
	printf("\nGive the number of the students who have better score: ");
	scanf("%d", &m);
	while(m>10){
		printf("\nGive the number of the students who have better score: ");
		scanf("%d", &m);
	}
	pOrder = fun(a, m);
	printf("***** THE RESULT *****\n");
	printf("The top: \n");
	for(i=0; i<m; i++)
		printf("%s %d\n", pOrder[i].num, pOrder[i].s);
	free(pOrder);
}

结果2_6

Result_2_6
         (1) 在函数 fun 中,声明了一个结构体数组和一个结构体指针。数组 b 的作用是暂存数组 a 的数据,因为题目中会改变数组元素的值,所以不能直接在数组 a 中改动;结构体指针 t 的作用是指向一块存储区域,用于存放题目要求的前 m 个学生信息。此处在调用 calloc 函数分配 m 个 STU 结构体大小空间后,需要先把指针强制类型转换为 struct STU*,然后赋值给指针变量 t ,而不是 *t。
         (2) 在双重 for 循环中,外层循环表示对指针 t 所指向的空间存储 m 个学生信息;内层循环和内嵌的选择语句,表示记录数组中 s 成员最大的数组元素的下标,然后把 num 成员和 s 成员存放最大的数组元素的下标,然后把 num 成员和 s 成员存放在 t 所指向的空间中,所以此处应调用字符串复制函数实现 num 成员的复制,接下来设置当前最大的数组的数组元素的 s 成员值为 0,表示再次查找最大值时该元素将被排除在外。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【枚举 图论】2242. 节点序列的最大得分

本文涉及知识点 枚举 图论知识汇总 LeetCode 2242. 节点序列的最大得分 给你一个 n 个节点的 无向图 &#xff0c;节点编号为 0 到 n - 1 。 给你一个下标从 0 开始的整数数组 scores &#xff0c;其中 scores[i] 是第 i 个节点的分数。同时给你一个二维整数数组 edges &…

区分虚拟网卡和物理网卡

枚举注册表网卡信息 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}读取没一项的Characteristics、NetCfgInstanceId信息Characteristics & NCF_PHYSICAL 即为物理网卡 Characteristics值 类型值说明NCF_VIRTUAL0x01…

STM32L051K8U6-HAL-LED闪烁设计

HAL三步法&#xff1a; 1、配置下载线 2、配置晶振 3、配置时钟 注意&#xff1a;中断优先级&#xff08;这里防止HAL_Delay卡死&#xff0c;详细请看 http://t.csdnimg.cn/NQhQV&#xff09; 4、 配置灯引脚属性为输出模式。并设置标签为LED 生成代码&#xff1a;编写while里…

《关于触手 AI 图像合成算法的分析报告》

一、算法全周期行为分析 算法安全 信息内容安全&#xff1a;在图像生成过程中&#xff0c;需要确保所生成的图像内容不包含违法、有害、侵犯他人权益或违反道德规范的信息。例如&#xff0c;不能生成涉及暴力、色情、恐怖主义等内容的图像。信息源安全&#xff1a;对于输入的原…

警惕智能手机的“隐形眼”:如何保护我们的数字隐私堡垒

随着智能手机深入我们生活的方方面面&#xff0c;它变得无所不在&#xff0c;甚至无所不知。 但你是否意识到&#xff0c;你的手机可能正在悄无声息地“监听”你的一举一动&#xff1f; 从你的搜索习惯到日常对话&#xff0c;手机的个性化推荐系统正不断收集你的数据。 本文…

参考图片神器《PureRef》,带下载。

画画、建模或者做设计看参考时&#xff0c;是否经常为不能同时共存两个页面而苦恼。 今天就给大家推荐一个能解决这个问题得软件——PureRef 下载地址&#xff1a;PureRef 2.0汉化版 汉化版2.0 蓝奏云&#xff1a; https://wwz.lanzouq.com/iyUTy1zt2b4d 下面是一些软件快…

UWA Gears兼容性数据公开

UWA最新发布了无SDK性能分析工具 - UWA Gears。该工具能够实时监测应用的CPU和GPU性能&#xff0c;无需代码改动即可掌握性能动态。此外&#xff0c;Gears还能截取应用的渲染画面进行深度分析&#xff0c;帮助您快速找到性能瓶颈并进行精准优化。 本篇内容为开发者提供了Gears…

【LVS】防火墙标签解决轮询错误

实验&#xff1a; 测试&#xff1a; 实验&#xff1a; 两个服务端下载软件在重启httpd lvs 标记多端口 多端口自动识别 测试 防火墙标记解决轮回问题

关于IAR的ICF编程操作

最近有一个项目需要对ICF进行外部编程。两个工程引用相同的ICF&#xff0c;通过外部输入参数来区分内部的地址范围。通过相关资料的研究&#xff0c;cmake可以通过参数导入一个变量来就觉这个问题。后来参考IAR手册发现可以在IDE中定义. 例子&#xff1a; icf文件&#xff1a…

Java Kafka消费者组位移重设深度解析与实践

简介 在现代的分布式系统中&#xff0c;消息队列扮演着至关重要的角色。Apache Kafka&#xff0c;以其高吞吐量、高可靠性和优秀的容错性&#xff0c;成为了众多企业的首选消息系统。在使用Kafka过程中&#xff0c;消费者组位移的管理是一个常见且关键的议题。本文将深入探讨K…

Excel中的高效查找利器:VLOOKUP函数深度解析与应用实战

文章目录 前言一、VLOOKUP基础应用二、常见用法1.精确匹配2.近似匹配3.反向查找4.多条件查找5.屏蔽错误值6.关键字查找&#xff08;模糊查找&#xff09;7.文本数值混合查找8.去除空格查找 前言 VLOOKUP函数是Excel中用于在数据表中进行垂直查找的强大工具。它能根据用户指定的…

html+css+js网页设计 中国电信1个页面(带js)

htmlcssjs网页设计 中国电信1个页面&#xff08;带js&#xff09; 网页作品代码简单&#xff0c;可使用任意HTML编辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作&#xf…

Android 文件上传与下载

在实际开发涉及文件上传不会自己写上传代码&#xff0c;一般 会集成第三网络库来做图片上传&#xff0c;比如android-async-http&#xff0c;okhttp等&#xff0c;另外还有七牛也提供 了下载和上传的API。 1.项目用到的图片上传的关键方法&#xff1a; 这里用到一个第三方的库…

ChatGPT辅助论文写作各阶段提示词分享

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 随着人工智能技术的迅速发展&#xff0c;ChatGPT作为一种强大的语言模型&#xff0c;已经在各个领域展现出其独特的应用价值。在学术论文写作过程中&#xff0c;ChatGPT不仅可以帮助研究…

细节持续跟新

1.input的自带光标如何去除 2.阻止事件冒泡 3.获取父亲兄弟的innertext 4.画表格 参考博主链接 前端-HTML表格制作_哔哩哔哩_bilibili 美化

[CSCCTF 2019 Qual]FlaskLight (jinja2模版注入)

两种方法&#xff1a; 1.工具法 进来看见flask到处飘&#xff0c;估计就是ssti ctrlU打开发现两行注释提示GET方式传递参数search 这种有参数的我先直接丢fengjing扫了一下&#xff0c;结果还真搞出来&#xff0c;这工具还是挺牛的&#xff0c;就是没参数的时候搞不了 fengj…

在 Ubuntu 24.04 LTS 上安装 MySQL 8

1. 更新系统软件包 在开始安装 MySQL 之前&#xff0c;确保你的系统软件包是最新的。 sudo apt update sudo apt upgrade -y 2. 添加 MySQL APT 存储库 首先&#xff0c;下载 MySQL APT 存储库的包&#xff1a; wget https://dev.mysql.com/get/mysql-apt-config_0.8.17-1…

软件工程_软件过程模型__20240806

1:软件过程模型 1.11:敏捷方法 敏捷方法-XP 四大价值观 沟通[加强面对面沟通] 简单[不过度设计] 反馈[及时反馈] 勇气[接受变更的勇气]12条过程实践规则 简单设计 测试驱动 代码重构 结对编程 持续集成 现场客户 发行版本小型化 系统隐喻 代码集体所有制 规划策略 规范代码…

【数据结构】五、树:8.并查集

4.并查集Disjoint Set 文章目录 4.并查集Disjoint Set4.1查4.2并❗4.3代码实现4.4对union优化4.5对Find的优化&#xff08;压缩路径&#xff09;❗4.6并查集C代码&#xff08;优化后&#xff09;按秩合并 集合。在集合中将各个元素划分为若干个 互不相交的子集。 如何表示&quo…

uniapp video播放视频 悬浮在屏幕无法滑动

背景&#xff1a; 在uniapp中&#xff0c;需要使用<video></video>标签进行播放动态src的视频。 1.在开发的时候&#xff0c;运行到浏览器&#xff0c;vedio标签正常&#xff1b;(使用HbuildX运行&#xff0c;运行 -->运行到浏览器)。 2.但是在打包成原生App&am…