C语言程序设计基础上机考试一题目及参考答案
1.输入一串字符(可能包含空格),计算输入的字符串中整数的个数并输出。
2.输入一个字符串,对字符串相同的字符只保留一个(首次出现的字符)。
3.找出一个大于给定整数m且紧随m的素数。
4.统计老年人各年龄段(每10岁为一个年龄段)的人数并存到b数组中,n个人员的年龄放在a数组中。
5.计算并输出k以内最大的10个能被13或17整除的自然数之和。
6.读入一行英文文本, 将其中每个单词的最后一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。
7.求A、B两个整数数组数据的交集,并输出交集的数据。
8.输入若干个整数,且每个数均在1000至9999之间,按照每个数的后三位进行升序排序,若后三位相等,则按照原数据升序排序。
9.将字符串s所有的子串t用“copy”替换,并输出替换后的字符串。
10.判断一个整数是否是回文数。所谓的回文数是指高位到地位与从低位到高位读取该数,得到的数是相同的数据。例如:1221,121是回文数。
输入一串可能包含空格的字符串,计算该字符串中数字(整数)的个数。
删除字符串中的数字字符
计算并输出high以内最大的10个素数之和。
A,B是两个整数集合,将A中和B相同的数据删除,并输出删除后的集合。
计算字符串s中含有字符串t的数目, 并输出。
编程实现:在已排好序的字符串中插入一个新的字符串,使插入后仍然有序,输出插入后的字符串。
在三位整数中寻找符合条件的整数,并依次有大到小存入数组,并输出,它既是完全平方数,又是两位数字相同。
判断一个整数是否是回文数。所谓的回文数是指高位到地位与从低位到高位读取该数,得到的数是相同的数据。例如:1221,121是回文数。
找出200以内所有的完数,并输出其因子。一个数若恰好等于它的各因子之和,称其为完数。例如:6=1+2+3,其中1、2、3为因子,6是因子和。
统计在字符串str中26个小写英文字母各自出现的次数。
C程序设计基础上机考试一
基本要求:
1)所有程序不能使用外部变量
2)子函数中不能出现数据的输入输出语句
3)每个程序至少包含两个函数定义(包括主函数)
1.输入一串字符(可能包含空格),计算输入的字符串中整数的个数并输出。
#include "stdio.h"
#include "string.h"
void main()
{
char a[100];int count;
int test1(char a[]);
printf("输入字符串:\n");
gets(a);
count=test1(a);
printf("整数个数为:%d\n",count);
}
int test1(char a[])
{int i,j,n=0;
for (i=0;a[i]!='\0';i++)
if (a[i]>='0'&&a[i]<='9')
{ for(j=i+1;a[j]!='\0';j++)
if (!(a[j]>='0'&&a[j]<='9')) break;
n++;
i=j;
}
return(n);
}
2.输入一个字符串,对字符串相同的字符只保留一个(首次出现的字符)。
#include"stdio.h"
#define N 100
void test2(char ss1[N])
{int i,j,k;
for(i=0;ss1[i]!='\0';i++)
for(j=i+1;ss1[j]!='\0';j++)
if(ss1[j]==ss1[i])
void test2(char ss1[N]){int i,j,k,n;
void test2(char ss1[N])
{int i,j,k,n;
n=strlen(ss1);
for(i=0;i
for(j=i+1;j
if(ss1[j]==ss1[i])
{for(k=j;k
ss1[k]=ss1[k+1];
j--;n--;
}
}
ss1[k]=ss1[k+1];
j--;
}
}
void main()
{void test2(char ss1[N]);
char ss[N];
printf("input a string\n");
gets(ss);
test2(ss);
printf("output the string\n");
printf("%s\n",ss);}
3.找出一个大于给定整数m且紧随m的素数。
素数:只能被1或自身整除的整数。
判断整数n是否为素数——采用穷举法求解。
基本算法:若 m%i==0 则说明m 不是素数。其中 i的取值范围为:2~m-1。
#include"stdio.