计算机考研自命题(3)

编程入门 行业动态 更新时间:2024-10-26 04:19:31

计算机考研自<a href=https://www.elefans.com/category/jswz/34/1769035.html style=命题(3)"/>

计算机考研自命题(3)

1、C语言–统计数字个数

1、编写程序,输入正整数n(1~10000),再输入n个正整数,找出这n个数中出现次数最多的数字,统计并输出其出现的次数

例如 1234 ,2345, 3456 中出现次数最多的数字是 3和 4 ,出现次数均为3次 。、

/*
解题思路:用一个长度为10的数组arr[10] = {0}存放每个数字出现的次数,初始全部为0,
然后输入一个数字 temp ,将数字 temp对10取余数,将temp中的每个数字记录下来  arr[temp%10]++ , temp =temp/10
然后再遍历数组,从中找到最大的值,其对应的下标就是出现次数最多的数字
*/# include<stdio.h>
int main(){int n; // 可输入元素的个数int i;int temp; // 输入要统计的数字的整数int arr[10]={0}; //用于存放0-9每个数字出现的次数 ,初始都为0个 int max = 0; // 出现最多的次数 printf("输入统计整数的个数:");scanf("%d",&n);printf("请输入%d个整数:",n);// 输入的整数不能超过n for(i=0;i<n;i++){scanf("%d",&temp);// 统计每个数字出现的次数 while(temp!=0){arr[temp%10]++;temp = temp/10;}}// 遍历数组 找出数组中存放的最大值,就表示出现次数最多 for(i=0;i<10;i++){if(max < arr[i]){max = arr[i];}} // 遍历数组,找出出现次数最多的数字 // 数组对应的索引就表示出现的数字 for(i = 0;i<10;i++){if(arr[i] == max){printf("出现最多的数字是:%d\n",i);}}printf("出现次数:%d次",max);return 0;
} 

2、C语言–删除指定字符

2、编写程序,输入字符s和字符串 ch ,在字符s中找到所有的ch字符后删除,得到新的字符并输出。要求通过编写用函数

viod delchar(char *s,char ch),实现字符串s中的 ch 字符找到后删除的操作。

/*
解题熟路:定义一个s[]数组,用来存放一个字符串
然后用gets(s)函数,往s数组中输入一串字符,
然后在输入一个要删除的字符ch = getchar(),定义一个delete()函数,将s和ch传入delete(s,ch)函数中,
遍历s中存放的字符,删除所有等于ch的字符
*/
# include <stdio.h>
void delchar(char *s,char ch){int i=0,j=0;while(s[i]!='\0'){   // 字符没有到末尾 if(s[i]!=ch){	// 数组中的字符和待删除字符不相同 s[j] = s[i]; // 字符保存在s[j]中 j++;}i++;}s[j] = '\0';      // 添加结束标志 
}int main()
{char ch;char s[80];printf("输入一串字符:"); gets(s);      //  输入一串字符    可以包含空格 printf("数入待删除字符:");ch = getchar();  // 数入一个字符 delchar(s,ch);printf("结果输出:");puts(s);		// 输出一串字符 return 0;
}

3、C语言–年龄排序

3、建立一个联系人记录簿,包含姓名,出生日期,电话三项,其中出生日期包含年月日三项,要求内嵌套结构体实现。编写程序

输入n(小于8)个联系人的信息存入记录簿,并按年龄大小从大到小顺序输出。

/*
解题思路:在命令行输入联系人的相关信息,用冒泡排序将联系人按年龄从大到小排序
先比较year,year越小年龄就越大
如果year相同,则比较month,month越小年龄越大
如果year和month都相同则比较day,day越小年龄越大
直到将所有的联系人从大到小排好序
*/# include<stdio.h>
# define N 7
// 联系人结构体
struct Person{char name[20];char tel[11];struct Time{int year;int month;int day;}Time;
}Person; // 输入联系人的基本信息 
void Input(struct Person person[]){int i,j;struct Person t;int year,month,day;printf("请输入%d个联系人的信息:",N); // 数入信息 for(i = 0;i<N;i++){scanf("%s %s %d %d %d",&person[i].name,&person[i].tel,&person[i].Time.year,&person[i].Time.month,&person[i].Time.day);}// 冒泡排序  按年龄从从大到小排 for(i = 0;i<N-1;i++){for(j = N-1;j>i;j--){if(person[j-1].Time.year > person[j].Time.year){t = person[j];person[j] = person[j-1];person[j-1] = t;}if(person[j-1].Time.year == person[j].Time.year){if(person[j-1].Time.month > person[j].Time.month){t = person[j];person[j] = person[j-1];person[j-1] = t;}}if(person[j-1].Time.year == person[j].Time.year){if(person[j-1].Time.month == person[j].Time.month){if(person[j-1].Time.day > person[j].Time.day){t = person[j];person[j] = person[j-1];person[j-1] = t;}}}}}// 输出printf("\n");printf("\n");printf("年龄从大到小排序序列是:\n");for(i = 0;i<N;i++) {printf("%s %s %d %d %d\n",person[i].name,person[i].tel,person[i].Time.year,person[i].Time.month,person[i].Time.day);}
} int main(){int n,i,temp;struct Person person[N],*p = person;Input(p);return 0;
}

4、C语言–文件删除注解

4、给一个hello.c 文件,去掉hello.c 文件中的注释,并写入new_hello.c文件中。

/*
解题思路:
一个只读的方式打开一个文件fp,一个只写的方式打开文件 fp2, 然后用fgets(str,n,fp)函数,将fp中长度为n-1的字符存放在str中,
然后开始遍历str,直到str为空。在遍历期间,如果扫面到两个 //说明这个是注解,需要删除,直接添加换行符  \n 和 \0 结束标值。
如果扫描到 / * 则先  用\0 标记表示结束,不需要后面的部分,然后再找到 * /  将之间的字符删除
直到将整个文件的注解全部删除
*/# include <stdio.h>
# include <string.h>int main(){FILE *fp,*fp1;char str[9999]="",str1[9999]="";int i,j,no=0;fp=fopen("201819测试.cpp","r"); //要打开的源文件fp1=fopen("new.cpp","w"); //另存为一个文件中while(fgets(str,9999,fp)!=NULL){for(i=0;i<9999;i++){if(str[i]=='/'&&str[i-1]=='/'){str[i-1]='\n';str[i]='\0';}if(str[i]=='*'&&str[i-1]=='/'){str[i-1]='\0';no=1;fputs(str,fp1);}if(str[i]=='/'&&str[i-1]=='*'){for(j=0;j<9998-i;j++){str[j]=str[i+j+1];}str[j]='\0';no=0;}}if(no==0){fputs(str,fp1);}}fclose(fp1);  // 关闭文件fclose(fp);return 0;
}

更多推荐

计算机考研自命题(3)

本文发布于:2023-12-04 16:33:25,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1661537.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:命题   计算机

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!