//由于时间关系,我也准备断网了,先写了前边4题,剩下的明天有空再帮你补上
1、程序填空1
#include
#include
#define ARR_SIZE 80
main()
{
char str[ARR_SIZE];
int len, i, letter=0, digit=0, space=0, others=0;
gets(str);
for (i=0;i < strlen(str); i++) // strlen(str) 表示输入字符串的长度,如abfdfdf字符串的长度为7
{
if ((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z')) //如果字符是小写的a ~ z 或者大写的 A ~ Z,letter 自加1
letter ++;
else if (str[i] >= '0' && str[i] <= '10')
digit ++;
else if (str[i] == ' ')
space ++;
else
others ++;
}
printf("English character: %d\n", letter);
printf("digit character: %d\n", digit);
printf("space: %d\n", space);
printf("other character: %d\n", others);
}
2、程序填空2
#include
#define ARR_SIZE 40
int BinSearch(long a[], int n, long x); //一个函数声明,用来查找输入的学号的学生的成绩
main()
{
float score [ARR_SIZE];
int n, i, pos;
long num[ARR_SIZE], x;
printf("Please enter total number:");
scanf("%d", &n);
printf("Please enter the number and score:\n");
for (i=0; i
scanf("%ld%f", &num[i], &score[i]);
}
printf("Please enter the searching number:");
scanf("%ld", &x);
pos = BinSearch(num,n,x); //
if (pos != -1) //如果函数BinSearch的返回值不是-1,就表明查找到了学生的成绩并输出,否则输出没有找到
{
printf("score = %4.0f\n", score[pos]);
}
else
{
printf("Not found!\n");
}
}
int BinSearch(long a[], int n, long x)
{
int low, high, mid;
low = 0;
high = n - 1;
while (low <= high)
{
mid = (high + low) / 2;
if (x > a[mid])
{
low = mid; //当输入的学号x大于中间学号a[mid],把中间值mid当做开小值low再重新进行二分法。
}
else if (x < a[mid])
{
high = mid; //当输入的学号x小于中间学号a[mid],把中间值mid当做最高值high再重新进行二分法。
}
else
{
return (mid); //如果当前的学号mid与x一样,就返回这个学生的学号mid
}
}
return(-1); //如果数组num没有符合条件的学号,返回一个-1,程序结束
}
3、改错1
#include
int BinSearch(long a[], int n, long x); //一个函数声明,用来查找输入的学号的学生的成绩
main()
{
int MyStrcmp(char* ,char*);
char str1[10],str2[10];
gets(str1);
gets(str2);
printf("%d\n",MyStrcmp(str1,str2));
}
int MyStrcmp(char *p1, char *p2)
{
for (; *p1 == *p2; p1++ , p2++)// 两个错 //如果字符串的每一个字符都相等,就执行if语句的内容。
{
if (*p1 == '\0') return 0;// 一个错 //当是字符串p1的最后一个字符时,表明两个字符串是相等的,返回一个零。
}
return *p1 - *p2; // 一个错 //如果两个字符串不相等,返回他们的ASCII码之差
}
4、改错2
#include
#define MAX 100 //一个错 //去掉分号和等号
void CopyString(char c[],char s[]);
void Insert(char s[]);
void main()
{
char string[MAX];
scanf("%s",string);
Insert(string); // 一个错 //函数调用实参列表只要数组名
printf("%s\n",string);
}
void CopyString(char c[], char s[])
{
int i;
for (i=0; s[i]!='\0'; i++)
{
c[i] = s[i];
}
c[i] = '\0';
}
void Insert(char srcStr[])
{
char strTemp[MAX];
int i = 0, j = 0;
CopyString(strTemp, srcStr);
while (strTemp[j] != '\0') //一个错 //把srcStr改成strTemp
{
srcStr[i] = strTemp[j];
i++;
j++;
srcStr[i] = ' '; //一个错; //插入一个空格字符,用单引号而不是用双引号
i++;
}
srcStr[i] = '\0';//一个错; //字符串末尾要加一个结束符'\0'
}
首先我们计算mpll_val的值。这里涉及两个操作符12就是右移,与左移相反,等于我们又将mpll_val打回原形变成了92,那么下面我们计算92&0xff,这里我们需要知道0xff是一个十六进制数。
以0x开始的数据表示16进制,0xff换成十进制为255。A,B,C,D...
只输入边长的话应该是正方形吧,我就按正方形来写了。如下:
#include
void
main()
{
for(;;)
{
int
a;
printf("Please
input
the
side
length
of
the
square:");
scanf("%d",&a);
if
(a<=0)
{
printf("Please
input
correct
parameter!\n");
}
else
{
int
area=a*a;
printf("The
area
of
the
square
is
:%d",area);
system("pause");
return;
}
}
}
1.求出200以内的整数中,最大的可以被17整除的数是哪个数。
#include
main()
{
int i,max;
for(i=17;i<200;i++)
{
if(i%17==0)max=i;
}
printf("%d\n",max);
}
2.以下程序的功能是调用函数fun计算:m=1+2+3+4+…+9+10,并输出结果。
#include
int fun()
{
int m=0,i;
for(i=1;i<=10;i++)
m=m+i;
return m;
}
main()
{
printf("%d\n",fun());
}
3.编程先输入某班10个学生某门课的成绩,对全班10个学生成绩进行由高到低排序,并打印输出排序结果,要求用函数编程实现排序功能。
#include
#define N 10
void main()
{
int i,a[N],t,j;
for(i=0;ifor(j=1;j for(i=0;i if(a[i] {
t=a[i];a[i]=a[j];a[j]=t;
}
printf("排序后:\n");
for(i=0;iprintf("\n");
}
4.输入某学生的考试成绩等级A、B、C、D(或a、b、c、d),要求按照等级输出对应的分数段。A级对应分数段为85~100分;B级对应分数段为70~84分;C级对应分数段为60~69分;D级对应分数段为60分以下。
#include
void main()
{
char c;
c=getchar();
if(c=='A'||c=='a') printf("85-100\n");
if(c=='B'||c=='b') printf("70-84\n");
if(c=='C'||c=='c') printf("60-69\n");
if(c=='D'||c=='d') printf("0-60\n");
}
5.编程计算1!+2!+3!+……+10!的值
#include
void main()
{
int i,j,n=1,sum=0;
for(i=1;i<11;i++)
{
for(j=1;j<=i;j++)
{
n=j*n;
}
sum=n+sum;
n=1;
}
printf("%d\n",sum);
}
6.编一程序:从键盘输入8个整数,计算并输出这8个数的平均数。
#include
void main()
{
int i,a[8],sum=0;float average;
for(i=0;i<8;i++)
{
scanf("%d",&a[i]);
sum=a[i]+sum;
}
average=(float)sum/8;
printf("%.2f\n",average);
}
//1.求出200以内的整数中,最大的可以被17整除的数是哪个数。for(i=1;i<=200;i++){ if(i%17==0) { print("能被17整除的数是{0}",i); }}
//2.以下程序的功能是调用函数fun计算:m=1+2+3+4+…+9+10,并输出结果。int fun函数:for(i=1;i<=10;i++){ int m=0; m +=i;}
char str[ARR_SIZE]; int len, i, letter=0, digit=0, space=0, others=0; gets(str); for (i=0;___i