c语言春考题目,PAT 2017年春考乙级真题(1066. 图像过滤)(C语言)

题目原文:

图像过滤是把图像中不重要的像素都染成背景色,使得重要部分被凸显出来。现给定一幅黑白图像,要求你将灰度值位于某指定区间内的所有像素颜色都用一种指定的颜色替换。

输入格式:

输入在第一行给出一幅图像的分辨率,即两个正整数M和N(0 < M, N <= 500),另外是待过滤的灰度值区间端点A和B(0 <= A < B <= 255)、以及指定的替换灰度值。随后M行,每行给出N个像素点的灰度值,其间以空格分隔。所有灰度值都在[0, 255]区间内。

输出格式:

输出按要求过滤后的图像。即输出M行,每行N个像素灰度值,每个灰度值占3位(例如黑色要显示为000),其间以一个空格分隔。行首尾不得有多余空格。

输入样例:

3 5 100 150 0

3 189 254 101 119

150 233 151 99 100

88 123 149 0 255

输出样例:

003 189 254 000 000

000 233 151 099 000

088 000 000 000 255

C代码:

#include "stdio.h"

int main() {

int m,n,a,b,color,count=0,temp;

scanf("%d %d %d %d %d",&m,&n,&a,&b,&color);

for (int i = 0; i 

for (int j = 0; j 

scanf("%d", &temp);

if (temp >= a && temp <= b)

temp = color;

if (j != 0) printf(" ");

printf("%03d", temp);

}

printf("\n");

}

return 0;

}

这里可以用%03d强制输出三位数,然后边输入边判断。

完美通过

07b3d46f2b0a13507a8e7cb2e8694468.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一些C语言春考模拟题的填空题,希望能对你有帮助: 1. 编写一个函数,计算两个整数的和,并返回结果。函数原型为:______ add(int a, int b); 答案:int 2. 编写一个程序,从键盘输入一个字符串,然后输出该字符串的长度。请补充以下代码中的______。 ```c char str[100]; int len; printf("请输入一个字符串:"); gets(str); len = ________(str); printf("该字符串的长度为:%d\n", len); ``` 答案:strlen 3. 编写一个程序,从键盘输入一个字符串,然后将该字符串中的所有小写字母转换成大写字母。请补充以下代码中的______。 ```c char str[100]; int i; printf("请输入一个字符串:"); gets(str); for (i = 0; str[i] != '\0'; i++) { if (______(str[i])) { str[i] = toupper(str[i]); } } printf("转换后的字符串为:%s\n", str); ``` 答案:islower 4. 编写一个程序,从键盘输入一个整数n,然后输出1~n之间的所有素数。请补充以下代码中的______。 ```c int n, i, j, flag; printf("请输入一个整数n:"); scanf("%d", &n); for (i = 2; i <= n; i++) { flag = 1; for (j = 2; j <= ______(i / 2); j++) { if (i % j == 0) { flag = 0; break; } } if (flag == 1) { printf("%d ", i); } } printf("\n"); ``` 答案:sqrt 5. 编写一个程序,从键盘输入一个字符串,然后反转该字符串并输出。请补充以下代码中的______。 ```c char str[100], temp; int i, j, len; printf("请输入一个字符串:"); gets(str); len = strlen(str); for (i = 0, j = len - 1; i < j; i++, j--) { temp = str[i]; str[i] = str[j]; str[j] = temp; } printf("反转后的字符串为:%s\n", ________); ``` 答案:str 6. 编写一个程序,从键盘输入一个整数n,然后输出斐波那契数列的前n项。请补充以下代码中的______。 ```c int n, i, a = 1, b = 1, c; printf("请输入一个整数n:"); scanf("%d", &n); printf("斐波那契数列的前%d项为:\n", n); printf("%d %d ", a, b); for (i = 3; i <= n; i++) { c = a + b; a = b; b = c; printf("%d ", ________); } printf("\n"); ``` 答案:c 7. 编写一个程序,从键盘输入一个字符串和一个字符,然后统计该字符串中该字符出现的次数。请补充以下代码中的______。 ```c char str[100], ch; int i, count = 0; printf("请输入一个字符串:"); gets(str); printf("请输入一个字符:"); ch = getchar(); for (i = 0; str[i] != '\0'; i++) { if (str[i] == ________) { count++; } } printf("该字符在字符串中出现的次数为:%d\n", count); ``` 答案:ch

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值