1. 编程题
1.1 求出10至1000之间能同时被2,3,7整除的数,并输出
#include"stdio.h"
int main(){
int i;
for(i=10;i<=1000;i++){
if(i%2==0 && i%3==0 && i%7==0)
printf("%d\n",i);
}
return 0;
}
1.2 任意输入一个三位正整数,十位上的数不动,将个位和百位上的数字交换,构成一个新的正整数后输出。(如:486变为684)
#include"stdio.h"
int reverse(int num){
int i,j,k,new_num;
i=num/100;
j=num%100/10;
k=num%10;
new_num=k*100+j*10+i;
return new_num;
}
int main(){
int n;
printf("请输入一个三位数:");
scanf("%d",&n);
printf("新的数字是:%d\n",reverse(n));
}
1.3 编写自定义函数prime(int x),判断x是否为素数。利用此函数编写程序找出100-2000中的所有素数,并输出素数的个数。
#include"stdio.h"
int prime(int x){
int i=x-1;
while(x%i!=0){
i--;
}
if(i==1)
return 1;
else return 0;
}
int main(){
int num,total;
total=0;
for(num=2;num<=100;num++){
if(prime(num)){
printf("%d是素数\n",num);
total++;
}
}
printf("100-2000之间有%d个素数\n",total);
return 0;
}
2. 程序填空题(也按照编程题来做)
2. 1 输入一个字符串(换行为结束标志)统计其中数字(0,1,2…9,不单独统计),空格和其它字符的出现的次数。
#include"stdio.h"
int main(){
char c;
int _num,_blank,_other;
_num=_blank=_other=0;
while((c=getchar())!='\n'){
if(c>='0'&&c<='9') _num++;
else if(c==' '|| c=='\t') _blank++;
else _other++;
}
printf("数字个数:%d, 空格个数:%d, 其他字符个数:%d\n",_num,_blank,_other);
return 0;
}
2. 2 先为数组a输满数据,再为x输入一个数据,在数组a中找出第一个与x相等的元素并将其下标输出,若不存在这样的元素,则输出“Not Found”标志
#include"stdio.h"
int main(){
int i,x,a[10];
printf("输入数组a:\n");
for(i=0;i<10;i++)
scanf("%d",a+i);
printf("输入数据x:");
scanf("%d",&x);
for(i=0;i<10;i++){
if(a[i]==x){
printf("下标:%d\n",i);
return 0;
}
}
printf("Not Found\n");
return 0;
}
2. 3 一个三位整数(100-999),若各位数的立方和等于该数自身,则称其为“水仙花数”(如:153=13+53+33),找出所有的这种数。
#include"stdio.h"
int is_flower(int x){
int i,j,k;
i=x/100;
j=x%100/10;
k=x%10;
if(x==i*i*i+j*j*j+k*k*k)
return 1;
else return 0;
}
int main(){
int i;
printf("水仙花数:\n");
for(i=100;i<=999;i++){
if(is_flower(i))
printf("%3d\n",i);
}
return 0;
}
2. 4 输入一个字符串(不超过80个字符)存至字符串数组s中并对个元素升序排序
#include"stdio.h"
#include"string.h"
void sort(char str[],int len){
int i,j;
char t;
for(i=0;i<len;i++){
for(j=i;j<len;j++){
if(str[i]>str[j]){
t=str[i];
str[i]=str[j];
str[j]=t;
}
}
}
}
int main(){
char s[80];
int length;
gets(s);
length=strlen(s);
printf("排序前:");
puts(s);
sort(s,length);
printf("排序后:");
puts(s);
return 0;
}
|