高级语言期末2007级B卷(计算机学院)

1.从键盘输入任意一个整数,求此整数各位数字中零的个数,以及各位数字中最大者。

#include <stdio.h>
 
int getzero(char *str){
	char max='0';
	int i=0;
	int count=0;
	while(str[i]!='\0'){
		if(str[i]>max)
		max=str[i];
		if(str[i]=='0')
			count++;
		i++;
	}
	printf("%c\n",max);
	return count;
}
 
int main(){
	char str[100];
	scanf("%s",&str);
	printf("%d",getzero(str));
}

2.求由10个自然数构成的数组a中所有的素数,以及这些素数的和。素数是只能被本身整除且大于1的自然数,要求:

编写返回类型为bool的函数isprime判断一个自然数是否为素数

主函数main中,由键盘读入a的十个自然数,然后输出a中所有素数以及这些素数的和

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <math.h>
 
bool Isprime(int n) {
	if(n<=1)
		return false;
	for(int i=2; i<=sqrt(n); i++) {
		if(n%i==0)
			return false;
	}
	return true;
}
 
int getsum(int *list,int size){
	
	int sum=0;
	for(int i=0;i<size;i++)
		if(Isprime(list[i])){
			printf("%d\n",list[i]);
			sum+=list[i];
		}
	return sum;
}
 
int main(){
	int list[]={1,2,3,4,5,6,7,8,9};
	int size = sizeof(list)/sizeof(list[0]);
	printf("%d",getsum(list,size));
}

3.编程序,把自然序列1,2,3,4,5,...成螺旋形放入方阵A_{N*N}中,并打印该方阵

#include <stdio.h>

int main() {
	int matrix[10][10];
	int k = 1;
	int i, j;
	int m, n;
	scanf("%d", &n);
	if (n%2==0)
		m = n / 2;
	else
		m = n / 2 + 1;
	for (i = 0; i < m; i++)  //m轮顺时针圈
	{
		for (j = i; j < n-i; j++)   // 1.往右:x = i , y值从i开始递增
			matrix[i][j] = k++;
		for ( j = i + 1; j < n - i; j++)  //2.往下:注意x从i+1开始递增,即往下挪一位才是下一个数, y = n - i - 1
			matrix[j][n - i - 1] = k++;  
		for ( j = n-i-2; j >=i; j--)  // 3. 往左:x = n - i - 1,y从n-i-2递减
			matrix[n - i - 1][j] = k++;
		for (j = n-i-2; j >= i + 1 ; j--)  // 4. 往上:x从n-i-2递减到i+1,y =  i
			matrix[j][i] = k++;
	}
	for (i = 0; i < n; i++)
		for (j = 0; j < n; j++)
			printf("matrix[%d][%d]: %-5d", i, j, matrix[i][j]);
		printf("\n");
}

4.对一个长度不超过100的字符串做如下处理:

编写函数求字符串的长度

编写函数对字符串中的各个字符按递增顺序进行排序(字符串结束符'\0'不包含其中)

编写递归函数,在字符串中顺序检索给定的字符

要求:上述所有函数不允许使用string,h中提供的字符串操作函数

#include <stdio.h>
 
void sort(char *str, int n) {
    for (int i = 0; i < n - 1; i++) 
        for (int j = 0; j < n - 1 - i; j++) 
            if (str[j] > str[j + 1]) {
                char temp = str[j];
                str[j] = str[j + 1];
                str[j + 1] = temp;
            }
}
 
int find(char *str,int index,char key){
	if(str[index]=='\0')
		return -1;
	if(str[index]==key)
		return index;
	return find(str,index+1,key);
}
 
int main() {
    char str[100] = "dnuaifnuaomomcbgualmldar";
    int size=0;
    while(str[size]!='\0')
    	size++;
    sort(str, size);
    printf("%s", str);
    return 0;
}

5.每个学生信息卡片包括学生姓名和出生日期,从键盘依次输入若干学生信息,来创建一个用于管理学生信息的单向链表。

请给出该链表每个结点的数据类型定义

请编写程序,按照姓名次序,依次插入每个学生信息,最后将链表中所有学生信息存放入文本文件student.txt中

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

typedef struct date {
	int year,month,day;
} date;

typedef struct card {
	char name[20];
	struct date birth;
	struct card* next;
} card;

struct card* create(int n) {
	struct card *head=(struct card*)malloc(sizeof(struct card));
	head->next=NULL;
	struct card* pre=head,*p;
	for(int i=0; i<n; i++) {
		p=(struct card*)malloc(sizeof(struct card));
		scanf("%s",&p->name);
		scanf("%d %d %d",&p->birth.year,&p->birth.month,&p->birth.day);
		while(pre->next!=NULL&&strcmp(p->name,pre->next->name))
			pre=pre->next;
		p->next=pre->next;
		pre->next=p;
		pre=head;
	}
	return head->next;
}

void write(struct card *head) {
	FILE *file;
	if((file=fopen("student.txt","w"))==NULL) {
		printf("open error");
		exit(0);
	}
	struct card* p = head;
	while(p!=NULL) {
		fprintf(file,"%s\t%d %d %d\n",p -> name,p->birth.year,p->birth.month,p->birth.day);
		p = p -> next;
	}
	fclose(file);
}

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

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

相关文章

vue如何重写移动端长按文字复制的功能

移动端长按文字会出现 “复制 全选”的默认弹框&#xff08;这里拿安卓举例吧&#xff09; 但是有的时候需要在长按的时候增加别的功能 这时候就需要禁用原生的弹框然后重写自己的功能 第一步&#xff1a;禁用掉原生弹窗 但是支持划选文字 重要css属性&#xff1a; -webkit…

HarmonyOS Full SDK的安装

OpenHarmony的应用开发工具HUAWEI DevEco Studio现在随着OpenHarmony版本发布而发布,只能在版本发布说明中下载,例如最新版本的OpenHarmony 4.0 Release。对应的需要下载DevEco Studio 4.0 Release,如下图。 图片 下载Full SDK主要有两种方式,一种是通过DevEco Studio下载…

【毛毛讲书】【时间贫困】时间都去哪了?

重磅推荐专栏&#xff1a; 《大模型AIGC》 《课程大纲》 《知识星球》 本专栏致力于探索和讨论当今最前沿的技术趋势和应用领域&#xff0c;包括但不限于ChatGPT和Stable Diffusion等。我们将深入研究大型模型的开发和应用&#xff0c;以及与之相关的人工智能生成内容&#xff…

查看网络连接的netstat

netstat是一个监控TCP/IP网络的非常有用的工具&#xff0c;可以显示路由表、实际的网络连接&#xff0c;以及每一个网络接口设备的状态信息&#xff0c;可以让用户得知目前都有哪些网络连接正在运作。netstat用户显示与IP、TCP、UDP和ICMP协议相关的统计数据&#xff0c;一般用…

文件怎么减小内存?4个简单的方法~

随着我们在电脑或移动设备上创建、下载和收集越来越多的文件&#xff0c;存储空间的管理变得尤为重要。有时&#xff0c;文件太大会占用过多的内存&#xff0c;导致存储空间不足的问题。但别担心&#xff0c;本文将向您介绍五种简单有效的方法&#xff0c;帮助您轻松减小文件的…

微信云开发-- Mac安装 wx-server-sdk依赖

第一次上传部署云函数时&#xff0c;会提示安装依赖wx-server-sdk 一. 判断是否安装wx-server-sdk依赖 先创建一个云函数&#xff0c;然后检查云函数目录。 如果云函数目录下只显示如下图所示三个文件&#xff0c;说明未安装依赖。 如果云函数目录下显示如下图所示四个文件&a…

YOLOv9详细解读,改进提升全面分析(附YOLOv9结构图)

&#x1f951; Welcome to Aedream同学 s blog! &#x1f951; 文章目录 1. 概要1.1 模型结构上的改动:1.2 训练脚本上的改动&#xff1a; 2. 介绍2.1 背景2.2 主要贡献 3. 总体框架3.1 可编程梯度信息&#xff08;PGI&#xff09;3.1.1 辅助可逆分支3.1.2 多级辅助信息 3.2 Ge…

浅析能耗监测系统在大型数据中心的应用

彭姝麟 Acrelpsl 1总体设计 大型数据中心能耗监测系统包含硬件和软件两大部分&#xff0c;其硬件组成主要包括监控服务器、主机设备、网络设备、环境参数传感器、通风模块等&#xff0c;总体采集逻辑采用三级监控体系。一级为主机设备&#xff0c;作为系统的应用层&#xff0c…

JS正则02——js正则表达式中常用的方法、常见修饰符的使用详解以及各种方法使用情况示例

JS正则02——js正则表达式中常用的方法、常见修饰符的使用详解以及各种方法使用情况示例 1. 前言1.1 简介1.2 js正则特殊字符即使用示例 2. 创建正则表达式的方式2.1 两种创建正则表达式的方式2.2 关于修饰符 3. 正则表达式中常用的方法3.1 test() 方法——正则表达式对象的方法…

shell自定义日志输出函数log

Background 在编写比较复杂的脚本时&#xff0c;需要输出相关日志信息&#xff0c;方便知悉脚本的执行情况以及问题的排查。 源码 log.sh # 自定义日志函数 function log(){if [[ $1 "i" || $1 "info" ]]; thenecho -ne "\033[1;34mINFO: \033[0m&…

【Leetcode每日一刷】哈希表|纲领、242.有效的字母异位词、349. 两个数组的交集

纲领 &#x1f517;代码随想录理论部分 关于哈希表这个数据结构就不再重复讲了&#xff0c;下面对几个关键点记录一下&#xff1a; 哈希碰撞 解决方法1&#xff1a;拉链法 解决方法2&#xff1a;线性探测法 下面针对做题要用到的三种结构讲一下&#xff08;也是重复造轮子了…

2024 年广东省职业院校技能大赛(高职组) “云计算应用”赛项样题 1

#需要资源或有问题的&#xff0c;可私博主&#xff01;&#xff01;&#xff01; 某企业根据自身业务需求&#xff0c;实施数字化转型&#xff0c;规划和建设数字化平台&#xff0c;平台聚焦“DevOps 开发运维一体化”和“数据驱动产品开发”&#xff0c;拟采用开源 OpenStack …

C++:String类的使用

创作不易&#xff0c;感谢三连&#xff01;&#xff01; 在C语言中&#xff0c;我们想要存储字符串的话必须要用字符数组 char str[]"hello world"这其实是将在常量区的常量字符串拷贝到数组中&#xff0c;我们会在数组的结尾多开一个空间存储\0&#xff0c;这样我…

52.2k star! 自己部署gpt4free, 免费使用各种GPT

GPT4Free是一个由开发者Xtekky在GitHub上发布的开源项目&#xff0c;它可以免费地使用GPT-3.5、GPT-4、llama、gemini-pro、bard、claude等多种大模型。截止到当前(2024.1.30)已经有52.2k star&#xff0c;可见其受欢迎程度。 github地址&#xff1a;https://github.com/xtekky…

如何解决代理ip服务器连接问题

在当今的数字化时代&#xff0c;互联网连接已成为生活和工作中不可或缺的一部分。然而&#xff0c;在尝试访问互联网资源时&#xff0c;用户有时会遇到“代理服务器可能有问题&#xff0c;或地址不正确(你尚未连接)”的错误提示。这种情况通常表明计算机的网络设置存在问题&…

根据二层封装协议决定—网络类型

目录 一、网络类型的分类 二、数据链路层协议 MA网络 以太网协议 P2P网络 一、网络类型的分类 P2P --- point to point --- 点到点网络 MA --- Multi-Access Network --- 多点接入网络 BMA --- Broadcast Multi-Access Network --- 广播型多点接入网络 NBMA --- Non-Bro…

云计算 2月20号 (认识操作系统)

1、认识操作系统 计算机系统的组成 知识点1&#xff1a;没有软件系统的计算机称之为"裸机" 知识点2&#xff1a;裸机提供基本的可计算性资源 知识点3&#xff1a;操作系统是最靠近硬件的软件层&#xff0c;负责管理和控制计算机硬件。 计算机硬件组成五大部件 运算器…

Variant AutoEncoder(VAE)和 VQVAE 学习笔记和代码

参考&#xff1a; [1] VAE1 [2] https://lilianweng.github.io/posts/2018-08-12-vae/ [3] VAE Code 进食顺序 1 VAE1.1 VAE的直观理解1.2 VAE数学推导1.2.1 混合高斯模型角度理解VAE&#xff08;李宏毅ML课的说法&#xff09;1.2.2 隐空间角度理解以及ELBO&#xff08;变分下界…

登录页设计新选择:毛玻璃和新拟态风格,非2.5D和插画风

登录页给潜在用户传递了产品的品牌调性&#xff0c;是非常重要的一类页面&#xff0c;之前2.5D和插画风格的登录页流行一时&#xff0c;不过这阵风好像过去了&#xff0c;新的风格开始涌现了。 一、越来越流行的毛玻璃设计风格 毛玻璃风格是指将背景模糊处理&#xff0c;使得…

【算法】长短期记忆网络(LSTM,Long Short-Term Memory)

这是一种特殊的循环神经网络&#xff0c;能够学习数据中的长期依赖关系&#xff0c;这是因为模型的循环模块具有相互交互的四个层的组合&#xff0c;它可以记忆不定时间长度的数值&#xff0c;区块中有一个gate能够决定input是否重要到能被记住及能不能被输出output。 原理 黄…