admin管理员组文章数量:1634854
2023年12月30日发(作者:)
计算机系C语言编程50题(含答案)
1、输入1~10之间的一个数字,输出它对应的英文单词。
#include "stdio.h"
main()
{
int x;
printf("please input x(1-10):n");
scanf("%d",&x);
switch(x)
{
case 1:printf("one");break;
case 2:printf("two");break;
case 3:printf("three");break;
case 4:printf("four");break;
case 5:printf("five");break;
case 6:printf("six");break;
case 7:printf("server");break;
case 8:printf("eight");break;
case 9:printf("nine");break;
case 10:printf("ten");break;
}
}
2、用自然语言描述程序逻辑如下,试写程序。
① 设置环境;
② 定义变量i、j、s,以及用于放置结果的变量sum,并令sum初值为0;
③ i=1;
④ 如果i≤100,则转⑤,否则转⑧;
⑤ 令s=0,求前i个自然数之和,并放于变量s之中;
⑥ sum=sum+s;
⑦ i增加1,转④;
⑧ 输出和sum,结束。
#include "stdio.h"
main()
{
int i,j,s;
long sum=0;
for(i=1;i<=100;i++)
{
s=0;
for(j=1;j<=i;j++)
{
s=s+j;
}
sum=sum+s;
}
1 / 26
计算机系C语言编程50题(含答案)
printf("sum=%d",sum);
}
3、用自然语言描述的程序逻辑为:(假设正确口令为123456)
① 设置环境;
② 定义变量i、flag和password,并令flag=0,i=0;
③ 用户回答口令,将其赋于password变量;
④ 口令正确?如果是,则flag=1,转⑥。否则转⑤;
⑤ 回答三次口令了吗?如果没有,计数器加1后(i++),转③,否则转⑥;
⑥ 根据flag之值输出相应信息。
#include "stdio.h"
main()
{
long i=0,flag=0,password;
printf("please input password:n");
scanf("%ld",&password);
do
{
if(password==123456)
flag=1;
i++;
}while(i<3);
if(flag==1)
printf("口令正确!");
else
printf("口令不正确!");
}
4、用自然语言描述的程序逻辑如下:
① 设置环境;
② 定义变量digit、x、y分别表示原始数、原始数的个位数和逆数;
③ 输入原始正整数x;
④ 从x中分解出个位数字digit;
⑤ 合并个位digit至逆数y中;
⑥ 原始数x缩小10倍:x=x/10;
⑦ 如果x非零,则转④;
⑧ 输出逆数y,结束
#include "stdio.h"
main()
{
int digit,x,y=0;
printf("please input x:n");
scanf("%d",&x);
do
{
digit=x%10;
y=y*10+digit;
x=x/10;
} while(x);
2 / 26
计算机系C语言编程50题(含答案)
printf("%d",y);
}
5、输入某三角形的三个边的长度,判断出这是个什么三角形(等腰、等边、任意,或不能构成)。
#include "stdio.h"
main()
{
float a,b,c;
printf("please input a,b,c:n");
scanf("%f,%f,%f",&a,&b,&c);
if(a>0&&b>0&&c>0&&a+b>c&&b+c>a&&a+c>b)
{
if(a==b&&a==c&&b==c)
{
printf("等边三角形!");
}
else
{
if(a==b||a==c||b==c)
{
printf("等腰三角形!");
}
else
{
printf("任意三角形!");
}
}
}
else
{
printf("不能构成三角形!");
}
}
3 / 26
计算机系C语言编程50题(含答案)
6、输入10个数,分别统计其中正数、负数、零的个数。
#include "stdio.h"
#define N 10
main()
{
int i,zsum=0,fsum=0,lsum=0;
float x;
for(i=1;i<=N;i++)
{
printf("请输入第%d个数:",i);
scanf("%f",&x);
if(x>0)
zsum++;
else if(x==0)
lsum++;
else
fsum++;
}
printf("有%d个正数,%d个负数,%d个零",zsum,fsum,lsum);
}
7、先随机产生N个三位自然数输出,然后再输出其中同时是3、5、7倍数的数。(设N为100)
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
#define N 100
main()
{
int i,x;
randomize();
for(i=1;i<=N;i++)
{
x=random(900)+100;
printf("%dt",x);
if(x%3==0&&x%5==0&&x%7==0)
printf("n*%d*n",x);
}
}
4 / 26
计算机系C语言编程50题(含答案)
8、已知x和y存在下列对应关系,要求对输入的每个x值,计算出y值,请编程。
y=0,x=a||x=-a; y=sqrt(a*a-x*x), -a
#include "stdio.h"
#include "math.h"
main()
{
float x,y,a;
printf("从键盘输入a,x:n");
scanf("%f,%f",&a,&x);
if(x==a||x==-a)
{
y=0;
}
else if(x>-a&&x { y=sqrt(a*a-x*x); } else { y=x; } printf("y=%f",y); } 9、计算:1/2-2/3+3/4-4/5……,前100项。 #include "stdio.h" main() { int i,t=1; float sum=0; for(i=1;i<=100;i++) { sum=sum+(t*i*1.0)/(i+1); t=-t; } printf("%f",sum); } 5 / 26 计算机系C语言编程50题(含答案) 10、从终端输入3个数a、b、c,按从大到小的顺序输出。 #include "stdio.h" #define N 3 main() { int x[N],i,j,temp; for(i=0;i { printf("please input di %d ge shu:",i+1); scanf("%d",&x[i]); } for(i=0;i { for(j=i+1;j { if(x[j]>x[i]) { temp=x[i]; x[i]=x[j]; x[j]=temp; } } } for(i=0;i { printf("%dt",x[i]); } } 11、打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方之和等于该数本身。 #include "stdio.h" #include "math.h" main() { int i,gw,sw,bw; for(i=100;i<=999;i++) { gw=i%10; sw=i/10%10; bw=i/100%10; if(i==pow(gw,3)+pow(sw,3)+pow(bw,3)) printf("%dn",i); } 6 / 26 计算机系C语言编程50题(含答案) } 12、求下列式子的值:1-1/2+1/3-1/4+……+1/99-1/100,将结果输出。 #include "stdio.h" main() { int i,t=1; float sum=0; for(i=1;i<=100;i++) { sum=sum+(1.0*t)/(i+1); t=-t; } printf("sum=%f",sum); } 13、编程输入整数a和b,若大于100,则输出百位以上的数字,否则输出两数之和。 #include "stdio.h" main() { int a,b; printf("please input a,b:n"); scanf("%d,%d",&a,&b); if(a>100&&b>100) { printf("%d,%d",a/100,b/100); } else { printf("%d",a+b); } } 7 / 26 计算机系C语言编程50题(含答案) 14、输入学生的成绩,利用计算机将学生的成绩划分出等级并输出:90~100:A级; 80~89:B级; 70~79:C级; 60~69:D级; 0~59:E级; #include "stdio.h" main() { int chengji; printf("please input chengji:n"); scanf("%d",&chengji); if(chengji>=90&&chengji<=100) printf("A"); else if(chengji>=80) printf("B"); else if(chengji>=70) printf("C"); else if(chengji>=60) printf("D"); else printf("E"); } 15、把100~200之间的不能被3整除的数输出。 #include "stdio.h" main() { int i; for(i=100;i<=200;i++) if(i%3!=0) printf("%dt",i); } 8 / 26 计算机系C语言编程50题(含答案) 二 数组循环部分: 16、从终端(键盘)读入20个数据到数组中,统计其中正数的个数,并计算这些正数之和。 #include "stdio.h" #define N 5 main() { float x[N],sum=0; int i,count=0; for(i=0;i { printf("please input di %d ge shu:",i+1); scanf("%f",&x[i]); if(x[i]>0) { count++; sum+=x[i]; } } printf("count=%d,sum=%f",count,sum); } 17、从终端(键盘)将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中各元素的值。 #include "stdio.h" #define N 5 main() { int a[N],b[N],i; for(i=0;i { printf("please input di %d ge shu:",i+1); scanf("%d",&a[i]); } for(i=0;i { b[i]=a[N-i-1]; } for(i=0;i { printf("%dt",b[i]); } } 9 / 26 计算机系C语言编程50题(含答案) 18、一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索找出车号。 include "stdio.h" #include "math.h" main() { int x;/*x表示四位车号*/ int gw,sw,bw,qw; for(x=0;x<=9999;x++) { gw=x%10; /*个位*/ sw=x/10%10; /*十位*/ bw=x/100%10; /*百位*/ qw=x/1000%10; /*千位*/ if(bw==qw&&gw==sw&&gw!=bw&&sqrt(x)==(int)sqrt(x)) printf("%dt",x); } } 19 安人员审问四名窃贼嫌疑犯。已知,这四人当中仅有一名是窃贼,还知道这四人中每人要么是诚实的,要么总是说谎的。在回答公安人员的问题中:甲说“乙没有偷,是丁偷的”, 乙说“我没有偷,是丙偷的”,丙说“甲没有偷,是乙偷的”,丁说“我没有偷”。请根据这四人的答话判断谁是盗窃者 #include "stdio.h" main() { int a,b,c,d; for(a=0;a<=1;a++) for(b=0;b<=1;b++) for(c=0;c<=1;c++) for(d=0;d<=1;d++) if(b+d==1&&b+c==1&&a+b==1) printf("%d,%d,%d,%dn",a,b,c,d); } 10 / 26 计算机系C语言编程50题(含答案) 20 "百钱百鸡"问题。百钱买百鸡, 鸡翁一值钱三,鸡母一值钱二,鸡雏三值钱一,问鸡翁、鸡母、鸡雏各几何?*/ #include "stdio.h" main() { int jiweng,jimu,jichou; for(jiweng=1;jiweng<=33;jiweng++) for(jimu=1;jimu<=50;jimu++) { jichou=100-jiweng-jimu; if(jiweng*3+jimu*2+jichou*1.0/3==100) printf("%d,%d,%dn",jiweng,jimu,jichou); } } 21 B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些人参加了竞赛. (1)A参加时,B也参加; (2)B和C只有一个人参加; (3)C和D或者都参加,或者都不参加; (4)D和E中至少有一个人参加; (5)如果E参加,那么A和D也都参加。 (程序有误) #include "stdio.h" main() { int a,b,c,d,e; /*用表示参加,表示未参加*/ for(a=0;a<=1;a++) for(b=0;b<=1;b++) for(c=0;c<=1;c++) for(d=0;d<=1;d++) for(e=0;e<=1;e++) { if(a==1) b=1; if(b==1) c=0; else c=1; if(c==1) d=1; else if(c==0) d=0; if(d||e) } } 11 / 26 计算机系C语言编程50题(含答案) 22 输入一个字串,判断它是否是对称串。如”abcdcba”是对称串,”123456789”不是。 #include "stdio.h" #include "string.h" main() { char s[50]; int i,flag=1;; gets(s); for(i=0;i<=strlen(s)/2-1;i++) { if(s[i]!=s[strlen(s)-i-1]) { flag=0;break; } } if(flag==1) { printf("%s是对称串",s);} else { printf("%s不是对称串",s);} } 23 随机产生N个大写字母输出,然后统计其中共有多少个元音字符。(设N为200) #include "stdio.h" #include "stdlib.h" #include "time.h" #define N 200 main() { int i,count=0,ch; randomize(); for(i=1;i<=N;i++) { ch=random(26)+65; printf("%ct",ch); if(ch=='A'||ch=='E'||ch=='I'||ch=='O'||ch=='U') count++; } printf("count=%d",count); } 24 从键盘输入长度不等的两个字串,将长串连接于短串之后输出。 include "string.h" main() { char s1[50],s2[100]; gets(s1); /*输入长串*/ gets(s2); /*输入短串*/ 12 / 26 计算机系C语言编程50题(含答案) puts(strcat(s2,s1)); } 25 键盘输入两个字串,输出其中较短的那个字串,并输出它的长度。 #include "stdio.h" #include "string.h" main() { char s1[100],s2[100]; gets(s1); gets(s2); if(strlen(s1) { puts(s1); printf("n%d",strlen(s1)); } else { puts(s2); printf("n%d",strlen(s2)); } } 26 入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。、 #include "stdio.h" #include "string.h" main() { char s[100]; int i,ywcount=0,spcount=0,szcount=0,qtcount=0; gets(s); for(i=0;i { if(s[i]>='A'&&s[i]<='Z'||s[i]>='a'&&s[i]<='z') ywcount++; else if(s[i]==' ') spcount++; else if(s[i]>='0'&&s[i]<='9') szcount++; else qtcount++; } printf("英文字母=%d,空格=%d,数字=%d,其他字符=%d",ywcount,spcount,szcount,qtcount); } 13 / 26 计算机系C语言编程50题(含答案) 27 个字符串中的元音字母复制到另一字符串,然后输出“另一字符串”。 #include "stdio.h" #include "string.h" main() { char s1[100],s2[100]; int i,j=0; gets(s1); for(i=0;i<=strlen(s1);i++) { if(s1[i]=='a'||s1[i]=='e'||s1[i]=='i'||s1[i]=='o'||s1[i]=='u') { s2[j]=s1[i]; j++; } } puts(s2); } 28 字符数组str1种下标为偶数的元素赋给另一字符数组str2,并输出str1和str2。、 #include "stdio.h" #include "string.h" main() { char str1[100],str2[100]; int i,j=0; gets(str1); for(i=0;i<=strlen(str1);i=i+2) { str2[j]=str[i]; j++; } puts(str2); 14 / 26 计算机系C语言编程50题(含答案) 29入一行英文,已知各单词之间用1个空格或一个标点符号相隔(设第一个单词前没有空格),统计这行英文有多少个单词。 #include "stdio.h" #include "string.h" main() { char s[100]; int i,count=0; gets(s); for(i=0;i { if(s[i]==' ') count++; } printf("count=%d",count+1); } 30输入一行字符串,按如下规则加密:如果是英文字母则大写变小写、小写变大写,对非英文字符则保持不变。试写加密程序。 #include "stdio.h" #include "string.h" main() { char s[100]; int i; gets(s); for(i=0;i { if(s[i]>='A'&&s[i]<='Z') s[i]=s[i]+32; else if(s[i]>='a'&&s[i]<='z') s[i]=s[i]-32; } puts(s); } 15 / 26 计算机系C语言编程50题(含答案) 31随机产生N个两位自然数,降序排列后输出。(设N为20) #include "stdio.h" #include "stdlib.h" #include "time.h" #define N 20 main() { int x[N],i,j,temp; randomize(); for(i=0;i { x[i]=random(90)+10; } for(i=0;i for(j=i+1;j { if(x[j]>x[i]) { temp=x[i];x[i]=x[j];x[j]=temp; } } for(i=0;i { printf("%dt",x[i]); } } 32求s=a+aa+aaa+aaaa+......+aa...a的值,其中a是1~9之间的一个数字,表达式项数从键盘输入(设不超过10项)。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 #include "stdio.h" #include "math.h" main() { int i,a,n;long t=0,s=0; scanf("%d,%d",&a,&n); s=t=a; printf("%d",t); for(i=1;i { t=t+a*pow(10,i); printf("+%d",t); s=s+t; } printf("=%ld",s); 16 / 26 计算机系C语言编程50题(含答案) } 33求1+12+123+……前n项之和,其中n是从键盘输入的一个数字(1~9)。 #include "stdio.h" #include "math.h" main() { int n,i; long s=0; scanf("%d",&n); for(i=1;i<=n;i++) { s=s+i*pow(10,n-i); } printf("%d",s); } 34小学生智商测试。让电脑随机出十道100以内整数的加法题(10分/题),小学生从键盘回答答案,统计小学生最后得分。 #include "stdio.h" #include "stdlib.h" #include "time.h" main() { int i,x,y,sum,chengji=0; randomize(); for(i=1;i<=10;i++) { x=random(100)+1; y=random(100)+1; printf("%d+%d=",x,y); scanf("%d",&sum); if(x+y==sum) chengji+=10; printf("n"); } printf("chengji=%d",chengji); } 17 / 26 计算机系C语言编程50题(含答案) 35斐氏数列是公元13世纪数学家斐波拉契发明的。即:1,2,3,5,8,13,21,34,55,89,……,输出其前15项。 #include "stdio.h" #define N 15 main() { int x,y,z,i; x=1; y=2; printf("%dt%d",x,y); for(i=3;i<=N;i++) { z=x+y; printf("t%d",z); x=y; y=z; } } 36输入一个十进数,将其转换成 N 进制数(0 #include "stdio.h" #include "string.h" main() { int i=0,x,n,digit=0; char s[10]; printf("please input x,n:n"); scanf("%d,%d",&x,&n); if(n>=0&&n<=16) { do { digit=x%n; s[i]=digit; i++; x=x/10; }while(x); for(i=strlen(s);i>=0;i--) printf("%d",s[i]); } else { printf("n超出范围!"); } } 18 / 26 计算机系C语言编程50题(含答案) 37输入n个整数,将其中最小者与第一个数对调,最大者与最后一个数对调。 #include "stdio.h" #define N 10 main() { int x[N],max,min,i,min_i,max_i; /*输入N个数*/ for(i=0;i { scanf("%d",&x[i]); } /*找N个数中的最大和最小值*/ max=x[0],max_i=0; min=x[0],min_i=0; for(i=1;i { if(x[i]>max) { max=x[i]; max_i=i; } if(x[i] { min=x[i]; min_i=i; } } /*输出原来N个数*/ printf("原来N个数如下:n"); for(i=0;i printf("%dt",x[i]); /*根据题意要求对换数*/ x[min_i]=x[0]; x[0]=min; x[max_i]=x[N-1]; x[N-1]=max; /*输出对换后的N个数*/ printf("处理后N个数如下:n"); for(i=0;i printf("%dt",x[i]); } 19 / 26 计算机系C语言编程50题(含答案) 38将一个数组中的值按逆序重新存放。例:原来顺序为3,6,5,4,1。要求改为1,4,5,6,3 #include "stdio.h" #define N 5 main() { int i,x[N],y[N]; for(i=0;i { printf("please input di %d ge shu :",i+1); scanf("%d",&x[i]); } for(i=0;i { y[i]=x[N-i-1]; printf("%dt",y[i]); } } 39键盘输入四个同学的五门课成绩,求出每个学生的平均成绩,输出该数组。 #include "stdio.h" #define M 4 #define N 6 main() { int cj[M][N],i,j,sum; /*输入每个同学的门课成绩*/ for(i=0;i for(j=0;j scanf("%d",&cj[i][j]); /*求平均成绩*/ for(i=0;i { sum=0; for(j=0;j sum+=cj[i][j]; cj[i][N-1]=sum/(N-1); } /*输出该数组*/ for(i=0;i { for(j=0;j printf("%dt",cj[i][j]); printf("n"); } } 20 / 26 计算机系C语言编程50题(含答案) 40从键盘上输入若干学生的一门课成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。 #include "stdio.h" main() { int cj,max=0,min=0; scanf("%d",&cj); while(cj>=0) { if(cj>max)max=cj; if(cj scanf("%d",&cj); } printf("max=%d,min=%d",max,min); } 41从键盘上输入若干学生的一门课成绩,计算出平均分,当输入负数时结束输入。将结果输出。 #include "stdio.h" main() { int x,count=0; float sum=0,avg; scanf("%d",&x); while(x>=0) { sum+=x; count++; scanf("%d",&x); } avg=sum/count; printf("avg=%f",avg); } 21 / 26 计算机系C语言编程50题(含答案) 42打印以下图案: 倒三角 #include "stdio.h" main() { int i,j; for(i=4;i>=0;i--) { /*输出每行前的空格*/ for(j=0;j<20-i;j++) { printf(" "); } /*输出每行中的*号个数*/ for(j=0;j<2*i-1;j++) { printf("*"); } /*输出换行符*/ printf("n"); } } 43求一个3*3的整型矩阵对角线元素之和。 #include "stdio.h" #include "stdlib.h" #include "time.h" main() { int x[3][3],i,j,sum=0; /*随机产生整型矩阵,并输出*/ randomize(); for(i=0;i<3;i++) { for(j=0;j<3;j++) { x[i][j]=random(900); printf("%dt",x[i][j]); } printf("n"); } /*求对角线元素和*/ sum=x[0][0]+x[1][1]+x[2][2]; printf("n对角线和=%d",sum); } 22 / 26 计算机系C语言编程50题(含答案) 44求满足1+2+3+…+n<500中最大的N,并求其和,编写程序实现。 #include "stdio.h" main() { int n=0,sum=0; while(sum<500) { n++; sum+=n; } printf("n=%d",n); } 45求N的阶乘,N由键盘输入。 #include "stdio.h" main() { int n,i; long t=1; scanf("%d",&n); for(i=n;i>=1;i--) t=t*i; printf("%d!=%ld",n,t); } 三、自定义函数与指针部分: 46、键盘输入长方体的长宽高l、w、h,求其体积及表面积。要求用自定义函数val(l,w,h)计算长方体的体积和表面积,计算结果使用全局变量带回主函数。 #include "stdio.h" float tiji,bmianji; void val(float l,float w,float h); main() { float l,w,h; scanf("%f,%f,%f",&l,&w,&h); val(l,w,h); printf("tiji=%f,bmianji=%f",tiji,bmianji); } void val(float l,float w,float h) { tiji=l*w*h; bmianji=2*(l*w+l*h+w*h); } 23 / 26 计算机系C语言编程50题(含答案) 47、找出三位自然数中的所有素数,要求判断x素数用自定义函数data(x)实现。 #include "stdio.h" int data(int x); main() { int i; for(i=100;i<=999;i++) if(data(i)) printf("%dt",i); } int data(int x) { int flag=1,i; for(i=2;i if(x%i==0) { flag=0; break; } if(flag==1) return 1; else return 0; } 48、输出n行由“#”组成的矩形,每行“#”的个数为m个,其中n、m由终端(键盘)输入。要求输出m个“#”功能由函数satr(m)函数实现。 #include "stdio.h" void satr(int m); main() { int m,n,i; printf("please input m,n:n"); scanf("%d,%d",&m,&n); for(i=1;i<=n;i++) { satr(m); printf("n"); } } void satr(int m) { int i; for(i=m;i>=1;i--) printf("#"); } 24 / 26 计算机系C语言编程50题(含答案) 49、编写程序,建立文件,由键盘输入5个人的姓名、手机号码、家庭住址,写入该文件中。 #include "stdio.h" #define size 5 struct student { char name[20]; int num; char addr[20]; }stud[size]; void save() { FILE *fp; int i; if((fp=fopen("c:","wb"))==NULL) { printf("n不能打开文件,错误"); exit(0); } for(i=0;i fwrite(&stud[i],sizeof(struct student),1,fp); fclose(fp); } main() { int i; for(i=0;i scanf("%s,%d,%s",stud[i].name,&stud[i].num,stud[i].addr); save(); } 25 / 26 计算机系C语言编程50题(含答案) 50、输出某二维数组中各元素的内存地址及其值。 #include "stdio.h" #include "stdlib.h" #include "time.h" #define M 4 #define N 6 main() { int x[M][N],i,j,*p; randomize(); for(i=0;i for(j=0;j x[i][j]=random(900); for(i=0;i for(p=x[i];p { printf("%x地址存放的数据为%dn",p,*p); } } 26 / 26
版权声明:本文标题:计算机系C语言编程50题(含答案) 内容由热心网友自发贡献,该文观点仅代表作者本人,
转载请联系作者并注明出处:https://www.elefans.com/xitong/1703867202a75493.html,
本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论