C语言上机试题答案.docx

上传人:b****2 文档编号:24118281 上传时间:2023-05-24 格式:DOCX 页数:53 大小:104.90KB
下载 相关 举报
C语言上机试题答案.docx_第1页
第1页 / 共53页
C语言上机试题答案.docx_第2页
第2页 / 共53页
C语言上机试题答案.docx_第3页
第3页 / 共53页
C语言上机试题答案.docx_第4页
第4页 / 共53页
C语言上机试题答案.docx_第5页
第5页 / 共53页
点击查看更多>>
下载资源
资源描述

C语言上机试题答案.docx

《C语言上机试题答案.docx》由会员分享,可在线阅读,更多相关《C语言上机试题答案.docx(53页珍藏版)》请在冰豆网上搜索。

C语言上机试题答案.docx

C语言上机试题答案

//vc1

//prog1.cpp

//设计一个程序,从键盘输入三个整数,按由小到大的顺序输出。

#include"stdio.h"

main()

{

inta[3],i,j,t;

for(i=0;i<3;i++)

{

scanf("%d",&a[i]);

}

for(i=0;i<9;i++)/*此处的i可以小于任意一个大于6的整数*/

{

for(j=0;j<2;j++)

{

if(a[j]>a[j+1])

t=a[j],a[j]=a[j+1],a[j+1]=t;

}

}

printf("Thethreedatafromsmalltobigis:

");

for(i=0;i<3;i++)

printf("%d",a[i]);

}

 

//vc1

//prog2.cpp

//求1+3+5+...+95+97+99的和。

#include"stdio.h"

main()

{

inti,sum=0;

for(i=1;i<100;i=i+2)

sum+=i;

printf("1+3+5+....+99=%d\n",sum);

}

 

//vc1

//prog3.cpp

//写一个函数,从键盘输入一个整数,如果该整数为素数,则输出“此整数为素数”,否则输出“整数非素数”。

(注:

要求从主函数输入整数)

#include"stdio.h"

main()

{

inti,j,k,l=2;

printf("输入一个大于3的整数:

");

scanf("%d",&i);

for(j=2;j

{

k=i%j;

if(k==0)break;

elsel++;

}

if(l==k)

printf("这是个素数!

!

\n");

else

printf("这不是素数!

!

\n");

}

 

//vc2

//prog1.cpp

//从键盘输入10个整数,保存在一个数组中,将这10个数逆序输出,然后求这10个数的和然后输出。

#include"stdio.h"

main()

{

inta[10],i,sum=0;

printf("输入10个整数:

");

for(i=0;i<10;i++)

scanf("%d",&a[i]);

for(i=9;i>=0;i--)

printf("%d",a[i]);

for(i=0;i<10;i++)

sum+=a[i];

printf("Thetotalis:

%d\n",sum);

}

//vc2

//prog2.cpp

//输入N个国家的英文名,要求按字母的先后顺序排列,并按照顺序输出。

#include

#include

voidmain()

{

chara[100][100]={0},b[100]={0};

intn,i,j;

for(n=0;n<100;n++)

{

gets(a[n]);

if(a[n][0]=='0')

break;

}

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

for(j=0;j

{

if(strcmp(a[j],a[j+1]))

{

strcpy(b,a[j]);

strcpy(a[j],a[j+1]);

strcpy(a[j+1],b);

}

}

for(i=0;i

puts(a[i]);

}

//vc2

//prog2.cpp

//输入N个国家的英文名,要求按字母的先后顺序排列,并按照顺序输出。

#include

#include

voidmain()

{

chara[100][100]={0},b[100]={0};

intn,i,j;

for(n=0;n<100;n++)

{

gets(a[n]);

if(a[n][0]=='0')

break;

}

for(i=1;i

for(j=0;j

{

if(strcmp(a[j],a[j+1])>0)

{

strcpy(b,a[j]);

strcpy(a[j],a[j+1]);

strcpy(a[j+1],b);

}

}

for(i=0;i

puts(a[i]);

}

//vc2

//prog3.cpp

/*某年级共有4个班,每班各有30名学生,

有6个科目的考试成绩,要求输出每门课程最高分的学生、

学号和姓名,并计算各班每个学生的平均成绩并输出。

*/

#include

#definecla4

#definestu30

#definesub6

main()

{

inti,j,k,m,n,h;

floata[cla][stu][sub],ave[cla][stu],t,max;

for(i=0;i

{

for(j=0;j

{

t=0;

for(k=0;k

{

printf("请输入第%d个班学号为%d的学生的第%d科的成绩\n",i+1,j+1,k+1);

scanf("%f",&a[i][j][k]);

t=t+a[i][j][k];

}

ave[i][j]=t/sub;

}

}

for(k=0;k

{

max=0.0;

for(i=0;i

{

for(j=0;j

{

if(a[i][j][k]>max)

{

max=a[i][j][k];

m=i,n=j,h=k;

}

}

}

printf("第%d科成绩的最高分是第%d个班学号为%d的人,成绩为%f",h+1,m+1,n+1,max);

}

for(i=0;i

{

for(j=0;j

{

printf("第%d班学号为%d的学生的平均分为%f",i+1,j+1,ave[i][j]);

}

}

}

//vc3

//prog1.cpp

//求从键盘上输入的10个数据(实数)中的最大值,并求和。

#include

main()

{

inta[10],i,m=0,s=0;

for(i=0;i<10;i++)

{

scanf("%d",&a[i]);

if(m

m=a[i];

s+=a[i];

}

printf("最大值是%d\n总和是%d\n",m,s);

}

//vc3

//prog2.cpp

//给出三角形的三边A,B,C,求三角形的面积。

(应先判断三边是否构成三角形)

#include

#include

intcheck(floata,floatb,floatc)

{

intj;

if((a+b>c)&&(a-b

j=1;

elsej=0;

returnj;

}

main()

{

floata,b,c;

floats,p;

scanf("%f%f%f",&a,&b,&c);

if(check(a,b,c))

{

p=(a+b+c)/2;

s=sqrt(p*(p-a)*(p-b)*(p-c));

printf("%f\n",s);

}

else

printf("不能构成三角形");

}

//vc3

//prog3.cpp

//编写程序求一个字符串的第n个字符开始、长度为m的子串

#include

main()

{

chara[100],b[100]={'0'};

intm,n,i,j;

gets(a);

printf("请输入首位数,位数\n");

scanf("%d%d",&m,&n);

for(i=m-1,j=0;i

b[j]=a[i];

puts(b);

}

//vc4

//prog1.cpp

//猜数游戏,假如设定一个整数m=123,然后让其他人从键盘上猜该数字,如果猜对,输出“RUGHT”,如果猜错,则输出“WRONG”,并且指出设定的数字比输入的数字大还是小

#include

main()

{

intm=123,a;

while

(1)

{

printf("请输入您的猜测:

\n");

scanf("%d",&a);

if(a==m)

{

printf("RIGHT");

break;

}

else

{

printf("WRONG");

if(a>m)

printf("\n该数字比您输入的小!

");

else

printf("\n该数字比您输入的大!

");

}

}

}

//vc4

//prog2.cpp

//编写程序,用于统计从键盘输入的字符串中的元音字母的个数。

#include

#include

main()

{

chara[100];

inti,s=0;

gets(a);

for(i=0;i

{if(a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u'||a[i]=='A'||a[i]=='E'||a[i]=='I'||a[i]=='O'||a[i]=='U')

s++;

}

printf("%d",s);

}

//vc4

//prog3.cpp

//编写程序求1-100中所有同构数的个数(一个自然数的平方的末几位与该数相同时,该数就为同构数,如25^2=625)

#include

main()

{

inti,j=0;

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

{

if((i*i)%1000%100==i||(i*i)%1000%100%10==i)

{printf("%d",i);

j++;}

}

printf("\n%d",j);

}

//vc5

//prog1.cpp

//从键盘接受一个整数X,判断X是否为含有因子7的整数,如是,则输出“YES”,否则输出“NO”

#include

main()

{

intx;

scanf("%d",&x);

if(x%7||x==0)

printf("NO");

else

printf("YES");

}

//vc5

//prog2.cpp

//编写一个密码检测的程序,在执行程序时,要求用户输入密码(标准密码自己预先设定),然后通过字符串比较函数比较输入密码和标准密码是否相等,若当等,则显示“口令正确”,并转去执行后续程序,若不想等,重新输入,3次都不相等则终止程序的执行。

要求自己编写一个字符串比较函数,而不使用系统的strcmp函数。

#include

#include

#include

intcmp(chara[],charb[])

{

inti,j,n;

i=strlen(a)>strlen(b)?

strlen(a):

strlen(b);

for(n=0;n

{if(a[n]==b[n])

j=1;

else

j=0;

}

returnj;

}

main()

{

chara[100],b[100];

inti;

printf("请设定密码:

\n");

gets(a);

system("CLS");

system("PAUSE");

for(i=0;i<3;i++)

{

printf("请输入密码:

\n");

gets(b);

if(cmp(a,b))

{

printf("口令正确!

");

break;

}

else

{

printf("口令错误!

您还有%d次机会!

",2-i);

}

}

}

//vc5

//prog3.cpp

//编写实现求1!

+2!

+...+10!

.

#include

intfun(intn)

{

longi,s=1;

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

s*=i;

returns;

}

main()

{

inti,n=0;

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

n+=fun(i);

printf("1!

+2!

+...+10!

=%d",n);

}

//vc6

//prog1.cpp

//编写程序,能对一给定的3*4的矩阵,求出其中的最大元素之及所在的行列号。

#include

main()

{

inta[3][4]={{23,4,15,98},{122,-3441,29,33},{123,1,-99,21}};//这里自己修改

inti,j,s=a[0][0],m=0,n=0;

for(i=0;i<3;i++)

{

for(j=0;j<4;j++)

printf("%d\t",a[i][j]);

printf("\n");

}

for(i=0;i<3;i++)

{for(j=0;j<4;j++)

{

if(s

s=a[i][j],m=i,n=j;

}

}

printf("最大元素是%d,位于第%d行第%d列",s,m+1,n+1);

}

//vc6

//prog2.cpp

//求2000中含有5的因子的个数。

#include

main()

{

inti,j,k,m,s=0;

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

{

if(2000%i==0)

{

m=i;

for(j=0;j<3;j++)

{

if(m%10==5)

{s++;break;}

else

m=m/10;

}

}

}

printf("%d",s);

}

//vc6

//prog3.cpp

//求任意一个小于65535的正整数的逆序数,并判断该数是否为回文数。

#include

#include

main()

{

chara[100],b[100]={'0'};

inti,m;

printf("请输入一个小于65535的正整数\n");

gets(a);

m=strlen(a);

for(i=0;i

b[m-i-1]=a[i];

puts(b);

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

printf("该数是回文数\n");

else

printf("该数不是回文数\n");

}

//vc7

//prog1.cpp

//给出一个不多于5位的正整数,要求:

求出其位数,分别打印每一位数字,最后按逆序打印出这个正整数

#include

#include

main()

{

chara[100],b[100]={'0'};

inti,m;

printf("请输入一个小于5位的正整数\n");

gets(a);

m=strlen(a);

for(i=0;i

{

printf("%c",a[i]);

b[m-i-1]=a[i];

}

puts(b);

}

//vc7

//prog2.cpp

//求一个4行4列矩阵主对角线元素之和。

#include

main()

{

inti,j,m=0,a[4][4]={1,23,7,-12,56,1,12,-88,34,177,1,46,14,56,-89,1};

for(i=0;i<4;i++)

{for(j=0;j<4;j++)

{

printf("%d\t",a[i][j]);

if(i==j)

m+=a[i][j];

}

printf("\n");

}

printf("主对角线元素之和是%d\n",m);

}

//vc7

//prog3.cpp

//编写一个程序,判断从键盘输入的两个字符串是否相同,若相同则输出“字符串相同”,否则输出“字符串不同”。

#include

#include

main()

{

chara[100],b[100];

printf("请输入字符串1:

\n");

gets(a);

printf("请输入字符串2:

\n");

gets(b);

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

printf("字符串相同!

");

else

printf("字符串不同!

");

}

//vc8

//prog1.cpp

//输出100-200之间,能被3整除,但是不能被7整除的数。

#include

main()

{

inti;

for(i=100;i<=200;i++)

if(i%3==0&&i%7!

=0)

printf("%d\n",i);

}

//vc8

//prog2.cpp

//将一个月份数字转换成月份的英文名称.

#include

main()

{

inti;

printf("请输入月份(1-12):

\n");

scanf("%d",&i);

switch(i)

{

case1:

printf("January\n");break;

case2:

printf("February\n");break;

case3:

printf("March\n");break;

case4:

printf("April\n");break;

case5:

printf("May\n");break;

case6:

printf("June\n");break;

case7:

printf("July\n");break;

case8:

printf("August\n");break;

case9:

printf("September\n");break;

case10:

printf("Octobery\n");break;

case11:

printf("November\n");break;

case12:

printf("December\n");break;

default:

printf("error!

\n");break;

}

}

//vc8

//prog3.cpp

//编写一程序,用简单选择排序实现对五个整数的排序(从小到大),排序的思路:

首先从n个整数中选出值最大的,将它交换到第一个元素位置,再从剩余的n-1个整数中选出值最大的整数,将它交换到第二个元素的位置,重复上述操作直到排序成功.

#include

main()

{

inti,j,temp1,temp2,a[5]={542,-14,90,-18,83};

printf("排序之前的数组为:

");

for(i=0;i<5;i++)

printf("%d",a[i]);

for(i=0;i<5;i++)

{temp1=a[i];

for(j=i;j<5;j++)

{

if(temp1>a[j])

{

temp1=a[j];

a[j]=a[i];

a[i]=temp1;

}

}

}

printf("\n排序后的数组为:

");

for(i=0;i<5;i++)

printf("%d",a[i]);

}

//vc9

//prog1.cpp

//编写一个程序,实现从键盘输入一组数据,求该组整数的平均值,并将大于平均值的整数输出.

#include

main()

{

inta[100],i,sum=0,n;

doubleavg;

printf("请输入您要输入的数据个数,按Enter结束\n");

scanf("%d",&n);

printf("请输入数据:

\n");

for(i=0;i

{

scanf("%d",&a[i]);

sum+=a[i];

}

avg=sum/n;

printf("该组数据的平均值是:

%6.2f\n",avg);

for(i=0;i

{

if(a[i]>avg)

printf("%d\t",a[i]);

}

}

//vc9

//prog2.cpp

//编写程序,输出形状为直角三角形的九九乘法表.

#include

main()

{

inti,j;

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

{

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

printf("%d*%d=%d",j,i,i*j);

printf("\n");

}

}

//vc9

//prog3.cpp

//编写一个程序,判断某字符串在主串中出现的次数,字符串及主串均从键盘输入,例如主串为"asdasasdas",字符串为"as",则出现4次.

#include

#include

main()

{

chara[100],s[100];

inti,j,flag,sum=0;

printf("请输入主串\n");

gets(a);

printf("请输入子串\n");

gets(s);

for(i=0;i

{flag=0;

for(j=0;j

{

if(s[j]==a[i+j])

flag++;

}

if(flag==strlen(s))

sum++;

}

printf("%d",sum);

}

//vc10

//prog1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 法学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1