信息类C语言程序设计期末题目练习(一)(个人总结)

编程入门 行业动态 更新时间:2024-10-26 08:33:11

信息类C语言程序设计<a href=https://www.elefans.com/category/jswz/34/1769634.html style=期末题目练习(一)(个人总结)"/>

信息类C语言程序设计期末题目练习(一)(个人总结)

1.连电路

题目描述:

小秋月作为2系的学生,天天疲于连电路,连猫猫耳朵和猫猫尾巴都耷拉了下来。

现在他正在把一堆电阻一个一个连到一起,请你帮他算出这些电阻组合起来的阻值。

输入格式:

多组输入,行数>=1。

第一行一个数,代表第一个电阻的阻值。 接下来每一行两个用空格分隔的数,opop和RR。

opop取值为0或1,0代表将这个电阻和已经连好的总体电阻做串联,1代表做并联,RR是这个电阻的阻值。

每个电阻的阻值都是正整数噢。

输出格式:

输出一个小数为总体阻值,保留两位。

参考代码:

#include<stdio.h>
int main(){int op,r0;double r;scanf("%d",&r0);r = (double)r0;while(~scanf("%d%d",&op,&r0)){switch(op){case 0:r += r0;break;case 1:r = (r*(double)r0)/(r+(double)r0);break; }}printf("%.2lf",r);return 0;
}

2.小秋月打代码

题目描述:

小秋月用黑白滤镜拍了一张自拍,照片的每个像素都可以由0——255的灰度值来表示,因为这张自拍太可爱了,所以小秋月不想让小七以外的其他人看清楚,他要对这张照片进行模糊处理。

对照片进行模糊处理的方式是,将每个像素的灰度值,用它和与它相邻的像素的灰度值的平均值来替代。

小秋月偷偷把自拍给你看了,请你帮他对照片进行模糊处理后,依次输出处理后的照片的每个像素的灰度值。

输入格式:

第一行两个数m,nm,n代表像素有m行n列。(m,n≤100)

接下来m行,每行n个整数,代表像素的灰度值。

输出格式:

输出m行,每行n个整数用空格分隔,代表打码后这个像素的灰度值(结果四舍五入),每行最后一个数字后面也带有一个空格。

小秋月喜欢美观整洁,所以要求每个数字占3位,右对齐。

参考代码:

#include<stdio.h>
#include<math.h>
int main()
{int m,n,sum,num;scanf("%d%d",&m,&n);int image[105][105],image0[105][105];for(int i=0;i<m;i++){for(int j=0;j<n;j++){scanf("%d",&image0[i+1][j+1]);}}for(int i=1;i<=m;i++){for(int j=1;j<=n;j++){num=(image0[i-1][j-1]!=0)+(image0[i-1][j]!=0)+(image0[i-1][j+1]!=0)+(image0[i][j-1]!=0)+(image0[i][j]!=0)+(image0[i][j+1]!=0)+(image0[i+1][j-1]!=0)+(image0[i+1][j]!=0)+(image0[i+1][j+1]!=0);sum=image0[i-1][j-1]+image0[i-1][j]+image0[i-1][j+1]+image0[i][j-1]+image0[i][j]+image0[i][j+1]+image0[i+1][j-1]+image0[i+1][j]+image0[i+1][j+1];image[i][j]=(int)((double)sum/(double)num+0.5);}
}for(int i=0;i<m;i++){for(int j=0;j<n;j++){printf("%3d ",image[i+1][j+1]);if(j==n-1){printf("\n");}}}return 0;
}

(此处采用穷举法,算法较为低级,而且赌定像素值不会出现0,考试时建议采取其他方法)

3.最长最短行

题目描述:

有一只不会数数的蒟蒻希望你能告诉ta输入的若干行数据中,哪一行最短,哪一行最长。

输入格式:

若干行由包含空格的可见字符组成的字符串,行数≤1000,每行长度≤1000。

输出格式:

四行,第一行为最短行的长度,第二行为最短行的内容,第三行为最长行的长度,第四行为最长行的内容。

若存在多个最短/最长行,则输出第一次出现的最短/最长行。

参考代码:

#include<stdio.h>
#include<string.h>
int main()
{char s[1005],smax[1005],smin[1005];int len,lenmax,lenmin;gets(s);len = strlen(s);lenmax=len;lenmin=len;strcpy(smax,s);strcpy(smin,s);while(gets(s)!=NULL){len = strlen(s);if(len>lenmax){strcpy(smax,s);lenmax=len;}else if(len<lenmin){strcpy(smin,s);lenmin=len;}}printf("%d\n",lenmin);puts(smin);printf("%d\n",lenmax);puts(smax);return 0;
}

4.位运算

题目描述:

对于一个数 n,在它的二进制表示中,我们规定最右位为第 0 位 。

现在有多组询问,每次询问给定两个数 n,m,请将数 n 的第 0∼m 位与第 m+1∼2m+1 位互换。

输入:

不定组数据输入

每行有空格隔开的两个数 nm

一个非负整数 n 表示被操作数(十进制)

一个非负整数 m含义见上

输出:

对于每组数据,输出数 n 的第 0∼m 位与第 m+1∼2m+1 位互换后的结果(十进制表示)

每行输出一组结果

参考代码:

#include<stdio.h>
#include<string.h>
#include<stdbool.h>
bool d[63];
int main()
{unsigned long long n;int m;while(~scanf("%llu%d",&n,&m)){for(int i=0;i<=63;i++){d[i]=((n>>i&1)==1);}for(int j=0,k=m+1;j<=m;j++,k++){bool t=d[j];d[j] = d[k];d[k] = t;}n = 0;for(int i=0;i<=63;i++){if(d[i]){n = ((1ull<<i)|n);}d[i]=0;}printf("%llu\n",n);}return 0;
}

(这里使用了布尔类型,通过调用stdbool.h函数库)

5.点到谁就选谁

题目描述:

双十一又到了,小函和同学们玩起了真心话大冒险。他们制定了一个规则来决定由谁来进行挑战。规则如下:

1、n个同学围成一圈,面向正中心,并规定由某一个人先开始。

2、每个人都可以选择往左传递或者往右传递,一旦确定不能更改。

3、由场外的同学执行m条操作。

4、每个操作由两个参数构成,第一个s是选择朝这位同学选择的反方向或者是正方向进行,第二个参数x代表传递x位同学。

请你编写程序判断一下最后由哪位同学中奖~

具体操作可以结合样例解释理解。

输入:

输入的第一行包含两个正整数n,m,表示参与游玩的同学的人数和场外同学的操作次数。

接下来 n行,每行包含两个整数a,b。第一个整数a只有两个值0,1。0代表该同学将向左传递,1代表该同学将向右传递。第二个整数b表示该同学的学号,为8位正整数,无前导0。以逆时针为顺序给出。

接下来m 行,每一行包含两个整数 s , x。若 s=0,表示向该同学选择方向的正方向传递 ;若s=1,表示向该同学选择方向的反方向传递。 x表示传递了x位同学。

数据范围:1≤n,m≤10(5),0≤x<n

Hint:

1、好像对a和s用下异或就知道往哪个方向传递了?

2、注意他们是围成一圈的噢~如果采用数组的方式,可以考虑当数组下标越界时,取个模或者加n之类的操作。

3、注意读入时是逆时针读入!

参考代码:

#include<stdio.h>
long long stu[100005];
int d[100005];
int main()
{int n,m,num=0;int s;long long x;scanf("%d%d",&n,&m);for(int i=0;i<n;i++){scanf("%d%lld",&d[i],&stu[i]);}for(int j=0;j<m;j++){scanf("%d%lld",&s,&x);while(num<0){num += n;}while(num>=n){num -= n;}if(d[num]^s==1){num += x;}else if(d[num]^s==0){num -= x;}}while(num<0){num = num + n;}while(num>=n){num -= n;}printf("%lld",stu[num]);return 0;
}

更多推荐

信息类C语言程序设计期末题目练习(一)(个人总结)

本文发布于:2024-03-04 10:03:14,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1708966.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:期末   题目   语言程序设计   信息

发布评论

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

>www.elefans.com

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