c语言上机试题.docx

上传人:b****4 文档编号:4650905 上传时间:2023-05-07 格式:DOCX 页数:28 大小:26.43KB
下载 相关 举报
c语言上机试题.docx_第1页
第1页 / 共28页
c语言上机试题.docx_第2页
第2页 / 共28页
c语言上机试题.docx_第3页
第3页 / 共28页
c语言上机试题.docx_第4页
第4页 / 共28页
c语言上机试题.docx_第5页
第5页 / 共28页
c语言上机试题.docx_第6页
第6页 / 共28页
c语言上机试题.docx_第7页
第7页 / 共28页
c语言上机试题.docx_第8页
第8页 / 共28页
c语言上机试题.docx_第9页
第9页 / 共28页
c语言上机试题.docx_第10页
第10页 / 共28页
c语言上机试题.docx_第11页
第11页 / 共28页
c语言上机试题.docx_第12页
第12页 / 共28页
c语言上机试题.docx_第13页
第13页 / 共28页
c语言上机试题.docx_第14页
第14页 / 共28页
c语言上机试题.docx_第15页
第15页 / 共28页
c语言上机试题.docx_第16页
第16页 / 共28页
c语言上机试题.docx_第17页
第17页 / 共28页
c语言上机试题.docx_第18页
第18页 / 共28页
c语言上机试题.docx_第19页
第19页 / 共28页
c语言上机试题.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c语言上机试题.docx

《c语言上机试题.docx》由会员分享,可在线阅读,更多相关《c语言上机试题.docx(28页珍藏版)》请在冰点文库上搜索。

c语言上机试题.docx

c语言上机试题

c语言上机试题

 

1

(1)设计一个程序,从键盘输入3个整数,按由小到大的顺序输出。

#include

voidmain()

{

intx,y,z,temp;

printf("Inputx,y,z=");

scanf("%d,%d,%d",&x,&y,&z);

if(x>y)

{

temp=x;x=y;y=temp;

}

if(x>z)

{

temp=x;x=z;z=temp;

}

if(y>z)

{

temp=y;y=z;z=temp;

}

printf("%d,%d,%d\n",x,y,z);

}

1

(2)求1+3+5+7``````````````+95+97+99的和。

#include

voidmain()

{

ints,i;

s=0;

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

{

s+=i;

}

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

}

1.(3)写一个函数,从建安输入一个整数,如果该整数为素数,则输出“此整数为素数”,否则输出“整数非素数”。

(注:

从主函数输入整数)

#include

#include

voidmain()

{

inta,m,i=2;

scanf("%d",&a);

m=sqrt(a);

for(i=2;i<=m;i++)

if(a%i==0)

break;

if(i>m)

printf("此整数是素数");

else

printf("此整数不是素数");

}

2

(1)连续输入10个整数.将这10个数逆序输出,然后求出这10个数的和并输出。

#include

main()

{

shorti,a[10],total=0;

printf("请连续输入10个整数:

");

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

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

printf("这10个整数逆序输出得:

\n");

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

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

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

total=total+a[i];

printf("\n这10个整数的和为:

%d\n",total);

}

2

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

#include

#include

intmain()

{

charstr[100][20],t[20];

inti,j,n;

printf("Inputthenumberofcountries:

\n");

scanf("%d",&n);

printf("Input%dcountries,please!

\n",n);

for(i=0;i

scanf("%s",str[i]);

for(i=0;i

for(j=i+1;j

if(strcmp(str[i],str[j])>0)

{

strcpy(t,str[i]);

strcpy(str[i],str[j]);

strcpy(str[j],t);

}

for(i=0;i

printf("%s\n",str[i]);

}

2(3)某年级共有4个班,每班各有30名学生,有6个科目的考试成绩。

求各班每个学生

的平均成绩并输出。

#include

#defineN14

#defineN230

#defineN36

main()

{

floatscore[N1][N2][N3],studav[N1][N2];

inti,j,k;

floatsum;

for(i=0;j

for(j=0;j

for(k=0;k

{

printf("请输入%d班学号为%d的学生的科目%d成绩"

"score[%d][%d][%d]:

",i+1,j+1,k+1,i,j,k);

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

}

for(i=0;j

for(j=0;j

{

sum=0;

for(k=0;k

sum=sum+score[i][j][k];

studav[i][j]=sum/N3;

printf("%d班学号为%d的学生的平均成绩studav[%d][%d]:

"

"%f\n",i+1,j+1,i,j,studav[i][j]);

}

}

3

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

#include

intmain()

{

inta[10],sum=0;

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

{

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

sum+=a[i];

}

for(intj=1;j<10;j++)

{

if(a[0]

a[0]=a[j];

}

printf("%d%d\n",sum,a[0]);

}

3

(2)给出三角形的三边A,B,C,求三角形的面积。

#include

#include

main()

{

floata,b,c,p,s;

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

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

{

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

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

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

}

else{

printf("不能构成三角形!

");

}

}

3(3)编写程序求一个字符串的第n个字符开始,长度为m的子串。

#include

main()

{

chars[100];

intn,m;

gets(s);

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

for(inti=n-1,k=0;k

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

printf("\n");

}

4

(1)猜数游戏,加入设定一个整数m=123,然后让其他人从键盘上猜该数字,如果才对,输出"RIGHT",如果猜错,则输出"WRONG",并且指出审定的数字比输入的数字大还是小。

#include

voidmain()

{

intn,m;

m=123;

do

{

printf("请输出你猜测的数字:

");

scanf("%d",&n);

if(n

printf("您输入的数字小了!

\n");

elseif(n>m)

printf("您输入的数字大了!

\n");

else

printf("恭喜你答对了!

\n");

}

while(n!

=m);

}

4

(2)编写程序,用于统计从键盘输入的字符串中的原音字母(a,A,e,E,i,I,o,O,u,U)的个数。

#include

voidmain()

{

intn=0;

chars[100];

printf("请输入需要统计的的字段:

\n");

gets(s);

for(inti=0;s[i]!

='\0';i++)

if(s[i]=='a'||s[i]=='A'||s[i]=='e'||s[i]=='E'||s[i]=='i'||s[i]=='I'||s[i]=='o'||s[i]=='O'||

s[i]=='u'||s[i]=='U')

n++;

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

}

4(3)编写程序求1-100中所有同构数的个数。

(一个自然数的平方的末几位与改数相同时该数就是同构数)

#include

main()

{

intx;

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

if(x*x%10==x||x*x%100==x)

printf("%5d",x);

printf("\n");

}

5

(1)从键盘接收一整数x,判断X是否为含有因子7的正整数,如果是泽输出"YES",否泽输出"NO"。

#include

voidmian()

{

intx;

printf("输入一个整数x=");

scanf("%d",&x);

if(x%7==0)

printf("YES\n");

else

printf("NO\n");

}

5

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

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

#include

#include

boolcmp(chars[20])

{

charmi[]={"helloword!

"};

intlen=strlen(mi);

if(len==strlen(s))

for(inti=0;i

if(mi[i]!

=s[i])

returnfalse;

elsereturntrue;

returnfalse;

}

intmain()

{

chars[20],n=1;

do

{

gets(s);

if(cmp(s))

{

printf("口令正确");

break;

}

n++;

}

while(n<=3);

}

5(3)编写首先求s=1!

+2!

+3!

+......+10!

.

#include

main()

{

longints=0,p=1;

intn;

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

{

p=p*n;

s=s+p;

}

printf("%1d\n",s);

}

6

(1)编写程序,等对一给丁的3*4的矩阵,求出其中的最大元素值极其所在的行列号。

#include

voidmain()

{

inta[3][4],b[12],i,j,k;

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

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

{

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

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

}

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

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

{

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

}

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

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

{

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

{

inttemp;

temp=b[j];

b[j]=b[j+1];

b[j+1]=temp;

}

}

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

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

{

if(b[11]==a[i][j])

{

printf("最大元素在第%d行,第%d列\n",i+1,j+1);

}

}

printf("这个元素为:

%d\n",b[11])}

6

(2)求2000中含有的5的因子的个数。

#include

intfun(intn)

{

ints=0,k;

for(k=2;k<=n;k++)

if(k%5==0)

s++;

returns;

}

main()

{

printf("%d\n",fun(2000));

}

6(3)求任意一个小于65535的正整数的逆序数,并判断概述是否为回文数。

#include

voidmain()

{

inta,b,c,d,e,num,num1;

printf("请输入一个小于65535的正整数:

");

scanf("%d",&num);

a=num/10000;

b=num%10000/1000;

c=num%1000/100;

d=num%100/10;

e=num%10;

if(num>9999)

{

printf("逆序后为:

%d%d%d%d%d\n",e,d,c,b,a);

num1=e*10000+d*1000+c*100+b*10+a;

if(num1==num)

printf("改数为回文数!

\n");

}

elseif(num>999)

{

printf("逆序后为:

%d%d%d%d\n",c,d,c,b);

num1=e*1000+d*100+c*10+b;

if(num1==num)

printf("改数为回文数!

\n");

}

elseif(num>99)

{

printf("逆序后为:

%d%d%d\n",e,d);

num1=e*100+d*10+c;

if(num1==num)

printf("改数为回文数!

\n");

}

elseif(num>9)

{

printf("逆序后为:

%d%d\n",e,d);

num1=e*10+d;

if(num1==num)

printf("改数为回文数!

\n");

}

else

{

printf("逆序后为:

%d\n",e);

printf("改数为回文数!

\n");

}

}

7

(1)给一个不多余5位的正整数,要求:

求出其位数,并分别打印出每一位数字,最后安妮需打印出这个正整数。

#include

voidmain()

{

inta,b,c,d,e,num;

printf("请输入一个不多余5位的正整数:

");

scanf("%d",&num);

a=num/10000;

b=num%10000/1000;

c=num%1000/100;

d=num%100/10;

e=num%10;

if(num>9999)

printf("逆序后为:

d%d%d%d%d\n",e,d,c,b,a);

elseif(num>999)

printf("逆序后为:

d%d%d%d\n",e,d,c,b);

elseif(num>99)

printf("逆序后为:

d%d%d\n",e,d,c);

elseif(num>9)

printf("逆序后为:

%d%d\n",e,d);

else

printf("逆序后为:

%d\n",e);

}

7

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

#include

intmain()

{

inti,j,a[4][4];

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

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

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

printf("%d\n",a[0][0]+a[1][1]+a[2][2]+a[3][3]+a[0][3]+

a[1][2]+a[2][1]+a[3][0]);

}

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

#include

#defineN20

intstrcmp(charstr1[],charstr2[])

{

inti=0;

while(str1[i]==str2[i]&&str1[i]!

='\o'&&str2[i]!

='\o')

i++;

returnstr1[i]-str2[i];

}

voidmain()

{

charstr1[N],str2[N];

printf("请输入第一个字符串:

");

gets(str1);

printf("请输入第二个字符串:

");

gets(str2);

if(strcmp(str1,str2)==0)

printf("字符串相同!

\n");

else

printf("字符串不同!

\n");

}

8

(1)输出100-200之间,能被3整除但不能被7整除的数。

#include

voidmain()

{

inti;

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

{

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

=0))

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

}

}

8

(2)将一个月份数字转换证月份的英文名称.

#include

voidmain()

{

char

*str[]={"January","February","March","April","May","June","July","Augest","September","October","November","December"};

char**p=str;

inti;

scanf("%d",&i);

printf("%s\n",p[i-1]);

}

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

首先从n个整数中选出数值

最大的证书,将他交换到第一个元素位置,在从剩余的N-1个整数中选出数值最大的整数,将他交换到第二个

元素位置上,抽工夫上述操作,知道排序成功。

#include

#defineN5

voidsmp(intr[],intn)

{

inti,j,k;

inttemp;

for(i=0;i

{

for(j=i+1;j

if(r[i]

{

temp=r[i];

r[i]=r[j];

r[j]=temp;

}

}

}

main()

{

inti,a[N];

printf("请输入%d个整数:

\n",N);

for(i=0;i

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

smp(a,N);

printf("排列后的输出为:

\n");

for(i=0;i

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

}

9

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

#include

main()

{

intsum=0,i,j=0,a[10],b[10];

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

{

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

sum+=a[i];

}

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

{

if(a[i]>sum/10)

{

b[j]=a[i];

j++;

}

}

for(i=0;i

printf("%d\n",b[i]);

}

9

(2)编写程序,输形状为直角三角形的九九乘法表。

#include

main()

{

inta,b;

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

{

for(b=1;b<=a;b++)

printf("%d*%d=%d",a,b,a*b);

if((a*b)==(b*a))

printf("\n");

}

}

9(3)编写一个程序,判断某字符串中出现的次数,字符串及主串均从键盘输入。

#include

#include

main()

{

chars[100],ch[10];

intn=0;

gets(s);

gets(ch);

intlen1=strlen(s),len2=strlen(ch);

for(inti=0;i

if(s[i]==ch[0])

{

intm=1;

for(intj=1;j

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

m++;

if(m==len2)

n++;

}

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

}

10

(1)从键盘输入一个学生的成绩,判断学生成绩登记,如果成绩在90-100,等级为A,成绩在80-89,等级为B,成绩在70-79,等级为C,成绩在60-69,等级为D,成绩小于60,等级为E.

#include

voidmain()

{

intscore;

printf("请输入该生的成绩:

");

scanf("%d",&score);

if(score>89)

printf("等级A\n");

elseif(score>79)

printf("等级B\n");

elseif(score>69)

printf("等级C\n");

elseif(score>59)

printf("等级D\n");

else

printf("等级E\n");

}

10

(2)输入100-1000之间的全部素数。

#include

voidmain()

{

intn,i,m;

for(n=10;n<=1000;n++)

{

for(i=2;i

{

m=n%i;

if(m==0)

break;

}if(m!

=0)

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

}

}

10(3)编写程序,求从键盘输入的字符串的长度。

#include

intstrlen(charstr[])

{

inti;

for(i=0;str[i]!

='\0';i++);

returni;

}

voidmain()

{

charstr[50];

printf("请输入字符串:

");

gets(str);

printf("字符串长度为:

%d\n",strlen(str));

}

11

(1)在主函数中从键盘输入若干个数放入数组中,用0结束输入,并放在最后一个元素中,下列程序中,函数fun的功能是:

计算数组元素中值为正数的平均值。

#include

#include

doublefun(intx[])

{

inta[1000];

inti,j=0,k=0;

doubles=0;

while(x[j]!

='\0')

{

if(x[j]>0)

{

a[k]=x[j];

k++;

}

j++;

}

for(i=0;i

s+=a[i];

returns/k;

}

main()

{

intx[1000];inti=0;

printf("\nPleaseentersomedata(endwith0)");

do

{

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

}

while(x[i++]!

=0);

printf("%f\n",fun(x));

}

11

(2)编程:

讲一个数字字符串传换成一个整数。

列入,若输入字符串“-1234”,则函数把它传唤为整数值-1234。

#include

#include

#defineN10

main()

{

charstr[N];

inti=0,flag=0;

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2