C语言机试.docx
《C语言机试.docx》由会员分享,可在线阅读,更多相关《C语言机试.docx(13页珍藏版)》请在冰点文库上搜索。
C语言机试
1.从键盘输入一个字符,若是数字字符,输出其对应的ASCII码值;若不是则输出“error”.
#include
main()
{chars;
printf("请输入一个字符");
s=getchar();
if(s>='0'&&s<='9')
printf("%d",s);
else
printf("error\n");
}
2.有一个函数:
Y=x*x(x<10)
Y=2*x(10<=x<20)
Y=(20<=x)
编写一个程序,输入x,输出y的值。
#include
main()
{intx,y;
printf("请输入一个整数");
scanf("%d",&x);
if(x<10)
y=x*x;
elseif(x>=10&&x<20)
y=2*x;
else
y=x/3;
printf("y的值为:
%d",y);
}
3.从键盘输入一为整数,计算其各位数字之积。
比如输入整数31241,则打印结果为24.
#include
main()
{intn,s=1;
printf("请输入一个整数");
scanf("%d",&n);
while(n!
=0)
{
s=s*(n%10);
n=n/10;
}
printf("各位之积:
%d\n",s);
}
4.从键盘输入一个整数m,输出1到m(含m)能被7或11整除的所有整数,并计算出这些数的和。
例如:
如果m为25,则程序输出7,11,14,21,22,和为75.
#include
main()
{inti,m,s=0;
printf("请输入一个整数");
scanf("%d",&m);
for(i=1;i<=m;i++)
{if(i%7==0||i%11==0)
{s=s+i;
printf("%4d",i);
}
}
printf("和为:
%d\n",s);
}
5.程序实现:
给定大小为10的double型一维数组a,要求先输出10个数存入数组a中,在分别输出该数组中的整数,负数和零的个数。
#include
main()
{doublea[10];
inti,zs=0,fs=0,zero=0;
printf("请输入10个整数");
for(i=0;i<10;i++)
scanf("lf",&a[i]);
for(i=0;i<9;i++)
{if(a[i]>0)
zs++;
elseif(a[i]<0)
fs++;
else
zero++;
}
printf("整数的个数:
%d\n",zs);
printf("整数的个数:
%d\n",fs);
printf("整数的个数:
%d\n",zero);
}
6.已知一个一维数组inta[10]={0,3,4,-5,6,8,5,7,10,9};要求:
输出数组中最大值元素的下标及元素的值。
#include
main()
{inta[10]={0,3,4,-5,6,8,5,7,10,9};
intmax,k,i;
k=0;
for(i=1;i<=9;i++)
if(a[i]>max)
{
max=a[i];
k=i;
}
printf("最大值元素为:
%d,其下标为:
%d",max,k);
}
7.从键盘上输入一个字符,如输入的字符是大写字母,则输出“upper”,是小写字母,则输出“lower”,如是其他字符输出“error”。
#include
main()
{chars;
printf("请输入一个字符:
");
s=getchar();
if(s>='a'&&s<='z')
printf("lower!
");
elseif(s>='A'&&s<='Z')
printf("upper!
");
else
printf("error!
");
}
8.程序计算100到1000间有多少个数其各位数字之和是13.
#include
main()
{inti,count=0;
intbw,sw,gw;
for(i=100;i<1000;i++)
{bw=i/100;
sw=i%100/10;
gw=i%100%10;
if((bw+sw+gw)==13)
count++;
}
printf("count=%d\n",count);
}
9.变成实现:
给定一维数组a【5】={8,6,5,4,1},将该数组中的值按逆序从新存放,即a变成{1,4,5,6,8}。
要求先输出a的原序,在输出a[5]的逆序。
#include
main()
{inta[5]={8,6,5,4,1};
inti,temp;
for(i=0;i<5;i++)
printf("%3d",a[i]);
printf("\n");
for(i=0;i<5/2;i++)
{temp=a[i];
a[i]=a[4-i];
a[4-i]=temp;
}for(i=0;i<5;i++)
printf("%3d",a[i]);
printf("\n");
}
10.从键盘输出整数n,输出1/2+1/4+1/6+1/8+。
。
。
前n项的和(输入的n<=10)
#include
main()
{intn,i;
floatsum=0;
printf("请输入一个整数(n<=10):
");
scanf("%d",&n);
for(i=1;i<=n;i++)
sum+=1.0/(2*i);
printf("sum=%f\n",sum);
}
11.编程实现:
给定大小为10的int型一维数组a,要求先输入10个数存入a中,在分别输出该数组中值为奇数的元素个数和值为偶数个数
#include
main()
{inta[10],i;
intcount1=0,count2=0;
printf("请输入10个整数:
");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
if(a[i]%2==0)
count1++;
else
count2++;
printf("偶数有:
%d个,奇数有:
%d个",count1,count2);
}
12.从键盘输入一个数,查找该数在一个给定的数组中出现的次数,并打印出位置(即下标)
#include
main()
{inti,x,
count=0,a[10]={12,45,56,56,78,0,34,23,87,11};
scanf("%d",&x);
for(i=0;i<10;i++)
{if(a[i]==x)
{count++;
printf("%3d",i);
}
}】
printf("共出现%d次",count);
}
13.由一个整型数组a【10】,他的初值分别是:
6,5,9,3,8,1,0,4,2,7.要求编写程序,讲数组的值按升序排列。
#include
main()
{inta[10]={6,5,9,3,8,1,0,4,2,7};
inti,j,t;
printf("排序前的数列:
\n");
for(i=0;i<10;i++)
printf("%4d",a[i]);
printf("\n");
for(i=0;i<10;i++)
{for(j=i+1;j<10;j++)
{if(a[i]>a[j])
{t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
printf("排序后的数列:
\n");
for(i=0;i<10;i++)
printf("%4d",a[i]);
printf("\n");
}
14.读入一个数字b,sum=b+bb+bbb.例如:
读入数字7,则输出下列表达式的和sum=7+77+777.
#include
main()
{intb,t=0,sum=0,i;
printf("请输入一个数字:
");
scanf("%d",&b);
for(i=1;i<=3;i++)
{t=t*10+b;
sum=sum+t;}
printf("%d",sum);
}
15.从键盘中输入任意一个字符串,统计该字符串中大写字母,数字字符各有多少个,并输出结果。
#include
main()
{chars[50];
inti,dz=0,sz=0;
printf("请输入字符串:
");
scanf("%s",s);
for(i=0;s[i]!
='\0';i++)
if(s[i]>='A'&&s[i]<='Z')
dz++;
elseif(s[i]>='0'&&s[i]<='9')
sz++;
printf("大写字母:
%d,数字字符:
%d\n",dz,sz);
}
16.编程计算100到1000间有多少个数其各位数字之积是7。
#include
main()
{inti,count=0;
intbw,sw,gw;
for(i=100;i<1000;i++)
{bw=i/100;
sw=i%100/10;
gw=i%100%10;
if((bw*sw*gw)==7)
count++;
}
printf("count=%d\n",count);
}
17.编程求1-1/2+1/3-1/4+…+1/99-1/100的值.
#include
main()
{inti;
intfh=1;
floatsum=0.0;
for(i=1;i<=100;i++)
{sum=sum+fh*1.0/i;
fh=-fh;
}
printf("sum=%f\n",sum);
}
18.题目要求:
编写程序输入下列图形:
a
bb
ccc
dddd
eeeeee
ffffff
gggggggg
要求使用循环结构
#include
main()
{inti,j;
chars='a';
for(i=1;i<=7,i++)
{for(j=1;j<=i;j++)
printf("%c",s);
s++;
printf("\n\n");
}
}
20.一个程序,程序的个功能是:
从键盘输入一个整数m,输出3到m(含m)之间的所有素数,并计数。
例如:
13,就只能被1和13整除。
#include
main()
{intm,i,j,count=0;
printf("请输入一个整数:
");
scanf("%d",&m);
for(i=3;i<=m;i++)
{for(j=2;j<=i-1;j++)
if(i%j==0)
break;
if(j>=i)
{
printf("%4d",i);
count++;
}
}
printf("素数的总个数:
%d",count);
}
21.编写一个函数求n!
,然后利用该函数计算1!
+2!
+3!
+….+n!
的值。
#include
longfact(intn)
{longs=1;
inti;
for(i=1;i<=n;i++)
s=s*i;
returns;
}
main()
{intn,i;
longsum=0;
printf("请输入一个整数:
");
scanf("%d",&n);
for(i=1;i<=n;i++)
sum=sum+fact(i);
printf("sum=%ld",sum);
}