1.有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
2.有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
3、用一维数组解如下问题:读取20个在10到100之间的不重复的整数。每读取一个值时,如果它与已读取的值不重复,就打印该值。用尽可能小的数组解决这个问题。
4、编程将由‘0’~‘9’组成的数字字符串转换为数。例如输入“12345”,输出12345。
5、Eratoshenes筛选是一种寻找素数的方法,该方法表述如下:
1)创建一个一维数组,把所有的元素初始化为1(表示真),下标为素数的元素保持1不变,其它下标的元素最终被置为0
2)从数组下标2出发,每次发现值为1的数组元素时,则看其后的所有元素,把下标是它们倍数的那些元素置为0。例如,对下标2来说,凡是2的倍数的下标(4,6,8,10,···)都将其元素置为0,对下标3来说,凡是否的倍数的下标(6,9,12,15,···)将其元素置为0。
当以上过程结束后,仍为1的数组元素的下标就是素数,将这些下标打印输出即可。编写程序,用含有1000个元素的数组确定并打印出1~999之间的所有素数
6、编程求5*5矩阵主、次对角线的元素之和
7、学生成绩统计。某班共6名学生,学习6门功课(数学分析,高等代数,大学物理,计算导论,经济学,英语),每门功课有平时,期中和期末三项成绩,按平时占20%,期中占30%,期末占50%,求每人每门功课的平时成绩和各个人6门功课的平均成绩及总平均成绩,最后要求按各人平均成绩的高低排序并打印成表格
8、已知一个有限输入字符集合?={a,b},写一个程序能够识别集合L={anbn:0≤n≤N}。
说明:该问题实质上是判定输入字符串是否呈现aa ··· abb ··· b (a,b均为n个) 。设字符串string有c个字符,则c=2n,且string[1]=··· =string[n]=a, string[n+1]= ··· =string[2n]=b (或进一步有这样的关系string[1],string[2]··· ,string[n]={a}, string[n+1],string[n+2],··· ,string[2n]={b})。
9、编写程序,在一个字符串数组中查找字符串“Hello”,如果找到输出所在的行号,否则输出“not found”。
10、若s和t是用是用一维数组存储的两个串,设计一个算法将串s首次与串t匹配的子串逆置
11、下面的程序段把二维数组sales(3×5)的各个元素置为0,说明该程序段把元素设置为0 的顺序。
參考答案:#include <stdio.h>
/*
3、用一维数组解如下问题:读取20个在10到100之间的不重复的整数。每读取一个值时,如果它与已读取的值
不重复,就打印该值。用尽可能小的数组解决这个问题。
*/
void noRepeat() {
int a[20];
int i;
int j;
int count = 0;
printf("\n请输入20个10-100的整数:\n");
for (i=0; i<20; i++) {
scanf("%d",&a[count]);
if (a[count]<10 || a[count]>100) {
printf("输入错误!\n");
i--;
continue;
}
for (j=0; j<count; j++) {
if (a[count] == a[j]) {
break;
}
}
if (j == count) {
printf("[%d]\n",a[count]);
count++;
}
}
}
/*
5、Eratoshenes筛选是一种寻找素数的方法,该方法表述如下:
1)创建一个一维数组,把所有的元素初始化为1(表示真),下标为素数的元素保持1不变,其它下标的元素
最终被置为0
2)从数组下标2出发,每次发现值为1的数组元素时,则看其后的所有元素,把下标是它们倍数的那些元素置
为0。例如,对下标2来说,凡是2的倍数的下标(4,6,8,10,···)都将其元素置为0,对下标3来说,
凡是否的倍数的下标(6,9,12,15,···)将其元素置为0。
当以上过程结束后,仍为1的数组元素的下标就是素数,将这些下标打印输出即可。编写程序,
用含有1000个元素的数组确定并打印出1~999之间的所有素数
*/
void Eratoshenes() {
int a[1000];
int i;
int j;
for (i=2; i<1000; i++) {
a[i] = 1;
}
for (i=2; i<1000; i++) {
if (a[i] == 1) {
for (j=2; j*i<1000; j++) {
a[j*i] = 0;
}
}
}
for (i=2; i<1000; i++) {
if (a[i] == 1) {
printf("%d ",i);
}
}
}
/*
7、学生成绩统计。某班共6名学生,学习6门功课(数学分析,高等代数,大学物理,计算导论,经济学,英语),
每门功课有平时,期中和期末三项成绩,按平时占20%,期中占30%,期末占50%,求每人每门功课的平时成绩和
各个人6门功课的平均成绩及总平均成绩,最后要求按各人平均成绩的高低排序并打印成表格
*/
void func_average(int s[6][6][3], int a[6]){
int i;
int j;
float temp;
for (i=0; i<6; i++) {
temp = 0;
for (j=0; j<6; j++) {
temp += s[i][j][0] * 0.2f + s[i][j][1] * 0.3f + s[i][j][2] * 0.5f;
}
a[i] = (int)(temp / 6);
}
}
void func_score() {
int score[6][6][3] = {
{{10,10,10},{10,10,10},{10,10,10},{10,10,10},{10,10,10},{10,10,10}},
{{20,20,20},{20,20,20},{20,20,20},{20,20,20},{20,20,20},{20,20,20}},
{{30,30,30},{30,30,30},{30,30,30},{30,30,30},{30,30,30},{30,30,30}},
{{40,40,40},{40,40,40},{40,40,40},{40,40,40},{40,40,40},{40,40,40}},
{{50,50,50},{50,50,50},{50,50,50},{50,50,50},{50,50,50},{50,50,50}},
{{60,60,60},{60,60,60},{60,60,60},{60,60,60},{60,60,60},{60,60,60}}
};
char name[6][20] = {"abc","xyz","def","ghi","aaa","bbb"};
int average[6] = {0};
int index[6];
int i;
int j;
int temp;
func_average(score,average);
for (i=0; i<6; i++) {
index[i] = 0;
for (j=0; j<6; j++) {
if (average[index[i]]!=-1 && average[j]>=average[index[i]]) {
index[i] = j;
}
}
average[index[i]] = -1;
}
func_average(score,average);
for (i=0; i<6; i++) {
printf("%4s",name[index[i]]);
for (j=0; j<6; j++) {
temp = (int)(score[index[i]][j][0] * 0.2f +
score[index[i]][j][1] * 0.3f + score[index[i]][j][2] * 0.5f);
printf("%3d",temp);
}
printf("%3d\n",average[index[i]]);
}
}
/*
8、已知一个有限输入字符集合?={a,b},写一个程序能够识别集合L={anbn:0≤n≤N}。
说明:该问题实质上是判定输入字符串是否呈现aa ··· abb ··· b (a,b均为n个) 。
设字符串string有c个字符,则c=2n,且string[1]=··· =string[n]=a, string[n+1]= ···
=string[2n]=b (或进一步有这样的关系string[1],string[2]··· ,string[n]={a}, string[n+1],
string[n+2],··· ,string[2n]={b})。
*/
void f(char *str) {
int i = 0;
int j = 0;
char a;
char b;
char *p;
a = str[0];
for (i=0,p=str; *p!=0; p++,i++) {
if (a != *p) {
b = *p;
break;
}
}
for (j=0; *p!=0; p++,j++) {
if (b != *p) {
printf("不属于集合!\n");
return;
}
}
if (i == j) {
printf("属于集合!\n");
} else {
printf("不属于集合!\n");
}
}
void main() {
// Eratoshenes();
// noRepeat();
// func_score();
f("cccdddcc");
}
程序在vc6.0下调试通过.