C语言练习题(山东科技大学吐血整理) 下载本文

int m,n,i,j,k,t;

scanf(\printf(\ for(i=n;i>=m;i--) { t=0; for(j=2;j<=sqrt(i);j++)//12 if(i%j==0) t=1; if(t==0&&i>1) printf(\ } printf(\return 0; }

22、 Sum Problem (II) : Input/Output Pratice

Description

计算若干整数的和,这些整数都是小于1000的非负整数。 Input

输入的第一行是一个整数M,后面有M个测试样例。每个测试样例以一个整数N开始,后面接着是N个整数。 Output

每组测试样例对应一行输出,为所给的N个整数之和,顺序与输入对应。 Sample Input 2

3 1 2 3

5 10 15 20 30 50 Sample Output 6 125

Answer

#include int main() {

int m,n,a,i,j,s; scanf(\ for(i=1;i<=m;i++) {

scanf(\ s=0;

for(j=1;j<=n;j++) {

scanf(\ s=s+a; }

printf(\ }

return 0; }

23、十进制整数转二进制

Description

给出一个十进制的非负整数x,x<=216,把它转换成二进制数输出。 Input

输入为多行,每行一个整数x,至读入EOF结束。 Output

每行输出x对应的二进制数值。

Sample Input 0 1 3 33 65535

Sample Output 0 1 11

100001

1111111111111111 Answer

#include int main() {

int a[100],i,b;

while(scanf(\ {

for(i=0;;i++) {

a[i]=b%2; b=b/2; if(b==0) break; }

for(;i>=0;) {

printf(\ i--; }

printf(\ }

return 0; }

24、简单的整数排序

Description

对给出的若干整数按从小到大排序。 Input

输入的第一个数为n(n<=1000),后接n个整数。 Output

按从小到大的顺序输出这些整数,每两个整数之间用一个空格分隔开,最后一个整数后面没有空格。

Sample Input

10 3 9 1 5 2 8 5 6 7 3 Sample Output 1 2 3 3 5 5 6 7 8 9 Answer

#include int main() {

int c,i,n,j; int a[1000];

scanf(\ for (i=0;i

scanf(\ for(i=1;i<=n-1;i++) { for(j=0;ja[j+1]) { c=a[j]; a[j]=a[j+1]; a[j+1]=c; } } }

printf(\ for(i=1;i

25、兔子的繁殖问题

Description

假设一对兔子每月能生一对小兔(一雌一雄),每对小兔出生后的下一个月是没有繁殖能力的,至出生后的第三个月开始又可以每月生一队小兔,问从一对刚出生的小兔开始,经过若干个月后一共有多少兔子(假设在此过程中兔子没有死亡)?

这个问题是意大利数学家菲波那契(Fibonacci)在他1202年出版的《算盘全书》中提出来的,从第一对刚出生的小兔开始每月的兔子数被乘坐菲波那契序列。 Input

输入的第一个数为n,接下来有n个数字。每个数字为一个月份m(m<=45)。 Output

输出为n行,每行为第m个月后的兔子总数。 Sample Input 6

1 2 3 4 5 10 Sample Output 1 2 3 5 8 89

Answer

#include int main() {

int n,x,i;

int a[50],b[50]; a[0]=1; a[1]=1; i=2;

while(i<50) {

a[i]=a[i-1]+a[i-2]; i++; }

scanf(\ for(i=1;i<=x;i++) {

scanf(\ b[i]=a[n]; }

for(i=1;i<=x;i++)

printf(\}

26登录密码验证

Description

编写一个程序,模拟用户登录系统的密码验证过程。系统提供给用户的密码长度最长为20个字符,若密码输入错误可以再次输入。但为了保证用户密码安全,若连续输入密码错误超过5次就会锁定账号一段时间。 Input

输入为若干个串,至EOF结束。输入的第一个串是用户的正确密码,后面的串为模拟用户登录时的输入的密码。 Output

每次输入错误的密码,输出一个“Wrong!”,若输入的密码为正确的,输出一个“Welcome!”,并结束密码测试。若前5次输入的密码都是错误的,则后面的输入中不管是否有正确的密码都输出“Out of limited!”。 Sample Input abcdefg

123456 kkkkkkkk abcdefg Sample Output Wrong! Wrong! Welcome! Answer

#include #include int main() {

char a[20],b[20]; int i,j=1;

scanf(\

while(scanf(\ {

if(j<=5) {

if((strcmp(a,b)==0)) {

printf(\ break; } else

printf(\ j++; }

else printf(\ } }

27、 Matrix Problem : Array Pratice

Description 求一个m×n阶矩阵A的转置矩阵AT。矩阵A的每个元素都在int类型的范围之内。 Input

输入的第一行为一个整数M(M>0),后面有M组输入数据。每组数据以两个正整数m和n开始,满足0