C语言程序设计题 找高手必须稳对的 明天考试

1.循环程序;计算Sn=a+aa+aaa+...+aa+a的值 其中a是一位数字
2.一维数组:找出数组中最大值和此值的下标
3.二位数组:完成3*3矩阵的转置
4.输入一行字符,统计其中英文字幕.空格.数字.和其他字符的个数
5.定义学生结构体,包括学号,姓名,各科成绩等,计算每个学生的总成绩和平均成绩
6.下面程序的输出结果
a)char s[]=“ABCD”;
b)main(){
i. char*p;
ii. for(p=s;p<s+4;p++)
1.printf("%s\n",p)
c)}/*end of main*/
哦了 如果有知道的谢谢帮下忙 明天补考 但是不知道答案 最好用C语言程序设计谭浩强编的书的答法解答 怕太NB的答法老师不明白 在线等 100分酬谢 补考过了在多加分
2楼的太NB啊 但是我不知道对不对啊 呵呵

1.循环程序;计算Sn=a+aa+aaa+...+aa+a的值 其中a是一位数字
#include<stdio.h>
void main()
{
int n,sum=0,i,tmp;

printf("input a digit:");
scanf(%d",&n);
for(i=0,tmp=0;i<n;i++)
{
tmp=tmp*10+n;
sum+=tmp;
}
for(;i>0;i--)
{
tmp=tmp/10;
sum+=tmp;
}
printf("sum=%d\n",sum);
}

2.一维数组:找出数组中最大值和此值的下标
#include <stdio.h>
#include <malloc.h>

void main()
{
int n=0,*arr=NULL;
int temp=0, index=0,i;

printf("输入多少个数?");
scanf("%d",&n);
arr=(int*)malloc(sizeof(int)*n);
for (i=0; i<n; i++)
{
printf("请输入第%d个数: ",i+1);
scanf("%d",&arr[i]);
}
for (i=0; i<n; i++)
{
if (arr[i]>temp)
{
temp=arr[i];
index=i;
}
}
printf("最大数为:%d ; 下标为:%d \n", temp, index);
}

3.二位数组:完成3*3矩阵的转置
#include <stdio.h>
void rotate(int a[3][3])
{
int i,j;
int temp;
for(i=0;i<3;i++)
for(j=0;j<i;j++)
if(i!=j)
{
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
}

main()
{
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int i,j;
rotate(a);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%d ",a[i][j]);
printf("\n");
}
getchar();
}

4.输入一行字符,统计其中英文字幕.空格.数字.和其他字符的个数
#include <stdio.h>
#include <string.h>

void main()
{
char a[1000], i, x1, x2, x3, x4;
scanf("%s", a);
x1 = 0; x2 = 0; x3 = 0; x4 = 0;
for (i = 0; i < strlen(a); i++)
if (((a[i] >='a') && (a[i] <= 'z')) || ((a[i] >='A') && (a[i] <= 'Z'))) x1 ++;
else if (a[i] == ' ') x2++;
else if ((a[i] >= '0') && (a[i] <= '9')) x3++;
else x4++;
printf("%d %d %d %d\n", x1, x2, x3, x4);
}

5.定义学生结构体,包括学号,姓名,各科成绩等,计算每个学生的总成绩和平均成绩

#include <stdio.h>
#include <string.h>

#define STU_NUM 10//学生数
#define SCORE_NUM 3//每个学生的科目数

typedef struct /*定义结构体数组*/
{
char num[20]; /*学号*/
char name[20]; /*姓名*/
float score[SCORE_NUM]; /*成绩*/
float total;//总分
float average;//平均分
} Student;

Student stu[STU_NUM];

//输入学生信息
void input()
{
int i,j;

printf("请输入%d个学生的信息:\n",STU_NUM);
for(i=0;i<STU_NUM;i++)
{
printf("学号:");
scanf("%s",stu[i].num);
printf("姓名:");
scanf("%s",stu[i].name);
for(j=0;j<SCORE_NUM;j++)
{
printf("科目%d的成绩:",j+1);
scanf("%f",&stu[i].score[j]);
}
}
}

//输出学生信息
void output()
{
int i,j;

//打印表头
printf("学号\t姓名\t");
for(j=0;j<SCORE_NUM;j++)
{
printf("科目%d\t",j+1);
}
printf("总分\t平均分\n");

//打印所有学生信息
for(i=0;i<STU_NUM;i++)
{
printf("%s\t%s\t",stu[i].num,stu[i].name);
for(j=0;j<SCORE_NUM;j++)
{
printf("%3.2f\t",stu[i].score[j]);
}
printf("%3.2f\t%3.2f\n",stu[i].total,stu[i].average);
}
}

//计算总分和平均分
void process()
{
int i,j;

for(i=0;i<STU_NUM;i++)
{
stu[i].total=0;
for(j=0;j<SCORE_NUM;j++)
{
stu[i].total+=stu[i].score[j];
}
stu[i].average=stu[i].total/SCORE_NUM;
}
}

void main()
{
input();
process();
output();
}

6.下面程序的输出结果
char s[]=“ABCD”;
main()
{
char*p;
for(p=s;p<s+4;p++)
printf("%s\n",p)
}/*end of main*/
输出结果:
ABCD
BCD
CD
D
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-05-28
1.循环程序;计算Sn=a+aa+aaa+...+aa+a的值
其中a是一位数字
#include<stdio.h>
void
main()
{
int
n,sum=0,i,tmp;
printf("input
a
digit:");
scanf(%d",&n);
for(i=0,tmp=0;i<n;i++)
{
tmp=tmp*10+n;
sum+=tmp;
}
for(;i>0;i--)
{
tmp=tmp/10;
sum+=tmp;
}
printf("sum=%d\n",sum);
}
2.一维数组:找出数组中最大值和此值的下标
#include
<stdio.h>
#include
<malloc.h>
void
main()
{
int
n=0,*arr=NULL;
int
temp=0,
index=0,i;
printf("输入多少个数?");
scanf("%d",&n);
arr=(int*)malloc(sizeof(int)*n);
for
(i=0;
i<n;
i++)
{
printf("请输入第%d个数:
",i+1);
scanf("%d",&arr[i]);
}
for
(i=0;
i<n;
i++)
{
if
(arr[i]>temp)
{
temp=arr[i];
index=i;
}
}
printf("最大数为:%d
;
下标为:%d
\n",
temp,
index);
}
3.二位数组:完成3*3矩阵的转置
#include
<stdio.h>
void
rotate(int
a[3][3])
{
int
i,j;
int
temp;
for(i=0;i<3;i++)
for(j=0;j<i;j++)
if(i!=j)
{
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
}
main()
{
int
a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int
i,j;
rotate(a);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%d
",a[i][j]);
printf("\n");
}
getchar();
}
4.输入一行字符,统计其中英文字幕.空格.数字.和其他字符的个数
#include
<stdio.h>
#include
<string.h>
void
main()
{
char
a[1000],
i,
x1,
x2,
x3,
x4;
scanf("%s",
a);
x1
=
0;
x2
=
0;
x3
=
0;
x4
=
0;
for
(i
=
0;
i
<
strlen(a);
i++)
if
(((a[i]
>='a')
&&
(a[i]
<=
'z'))
||
((a[i]
>='A')
&&
(a[i]
<=
'Z')))
x1
++;
else
if
(a[i]
==
'
')
x2++;
else
if
((a[i]
>=
'0')
&&
(a[i]
<=
'9'))
x3++;
else
x4++;
printf("%d
%d
%d
%d\n",
x1,
x2,
x3,
x4);
}
5.定义学生结构体,包括学号,姓名,各科成绩等,计算每个学生的总成绩和平均成绩
#include
<stdio.h>
#include
<string.h>
#define
STU_NUM
10//学生数
#define
SCORE_NUM
3//每个学生的科目数
typedef
struct
/*定义结构体数组*/
{
char
num[20];
/*学号*/
char
name[20];
/*姓名*/
float
score[SCORE_NUM];
/*成绩*/
float
total;//总分
float
average;//平均分
}
Student;
Student
stu[STU_NUM];
//输入学生信息
void
input()
{
int
i,j;
printf("请输入%d个学生的信息:\n",STU_NUM);
for(i=0;i<STU_NUM;i++)
{
printf("学号:");
scanf("%s",stu[i].num);
printf("姓名:");
scanf("%s",stu[i].name);
for(j=0;j<SCORE_NUM;j++)
{
printf("科目%d的成绩:",j+1);
scanf("%f",&stu[i].score[j]);
}
}
}
//输出学生信息
void
output()
{
int
i,j;
//打印表头
printf("学号\t姓名\t");
for(j=0;j<SCORE_NUM;j++)
{
printf("科目%d\t",j+1);
}
printf("总分\t平均分\n");
//打印所有学生信息
for(i=0;i<STU_NUM;i++)
{
printf("%s\t%s\t",stu[i].num,stu[i].name);
for(j=0;j<SCORE_NUM;j++)
{
printf("%3.2f\t",stu[i].score[j]);
}
printf("%3.2f\t%3.2f\n",stu[i].total,stu[i].average);
}
}
//计算总分和平均分
void
process()
{
int
i,j;
for(i=0;i<STU_NUM;i++)
{
stu[i].total=0;
for(j=0;j<SCORE_NUM;j++)
{
stu[i].total+=stu[i].score[j];
}
stu[i].average=stu[i].total/SCORE_NUM;
}
}
void
main()
{
input();
process();
output();
}
6.下面程序的输出结果
char
s[]=“ABCD”;
main()
{
char*p;
for(p=s;p<s+4;p++)
printf("%s\n",p)
}/*end
of
main*/
输出结果:
ABCD
BCD
CD
D
第2个回答  2008-09-17
1、
main()
{
int n,a;
long s=0;
scanf("%d%d",&n,&a);
for(i=1;i<=n;i++)
{
s=s+a;
a=a*10+a;
}
s=s*2+a;
printf("Sn : %ld",s);
}
2、
define N 20
main()
{
int i,max,xb=0;
int a[N]
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
if(a[xb]<a[i]) xb=i;
}
max=a[xb];
printf("Max value is:%d,%d",max,xb);
}
3、
#define N 3
#define M 3
main()
{
int i,j,t;
int a[N][M];
for(i=0;i<N;i++)
for(j=0;j<M;j++)
scanf("%d",&a[i][j]);
for(i=0;i<N;i++)
for(j=0;j<=i;j++)
{
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t
}
}
4、main()
{
char c;
int zm=0,kg=0,su=0,qt=0;
scanf("%c",&c);
while(c!='\n')
{
if((c>='a' && c<='z') || (c>='A' && c<='Z')) zm++;
elseif(c==' ') kg++;
elseif(c>='0' && c<='9') su++;
else qt++;
scanf("%c",&c);
}
printf("%d,%d,%d,%d",zm,kg,su,qt);
}

5、struct st{
int xh;
char name[20];
int cj[5];// 定义各科成绩
float sum;
float avg;
}
main()
{
struct st a[10];//定义10人的数据;
int i,j;
for(i=0;i<10;i++)
{
scanf("%d %s",&a[i].xh,a[i].name);
a[i].avg=0.0;
a[i].sum=0.0;
for(j=0;j<5;j++)
{
scanf("%d",&a[i].cj[j]);
a[i].sum=a[i].sum+a[i].cj[j];
}
a[i].avg=a[i].sum/5;//指定的科目数为5

}
//输出
for(i=0;i<10;i++)
{
printf("\n%d,%s,",a[i].xh,a[i].name);
for(j=0;j<5;j++)
printf("%d,",a[i].cj[j]);
printf("%f,%f",a[i].sum,a[i].avg);
}
}
6、输出为空;
第3个回答  2008-09-17
2、
#include <iostream.h>
#include <stdlib.h>

int main()
{
int a[10];
int i,temp;
i = temp = 0;
//srand((unsigned)time(NULL));
srand(10);
for(i=0;i<10;i++)
a[i] = rand();
for(i=1;i<=10;i++)
cout<<"a["<<i<<"] = "<<a[i-1]<<endl;
temp = a[0];
for(i=1;i<10;i++)
{
if(temp<a[i])
temp = a[i];
}

cout<<"The max number is "<<temp<<endl;
for(i=1;i<10;i++)
{
if(temp == a[i])
cout<<"The position is "<<i+1<<endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}
兰的在做了
相似回答