㈠ 7道c語言編程題,急求答案
#include <stdio.h>
void main()
{
int i,j;
int sum=0; //定義對角線的和
int a[100][100],n;
printf("輸入是n*n矩陣的n值:");
scanf("%d",&n);
printf("輸入一個%d*%d矩陣:",n,n);
printf("\n");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]); //按矩陣格式輸入
}
for(i=0;i<n;i++)
{
sum=sum+a[i][i]; //求出對角線數之和
}
printf("矩陣對角線之和為: %d\n",sum);
}
㈡ 簡單的c語言編程題6(附答案,求不同的答案!!)
你老師編的很好了,我想了很久,本想用其它原理來做,後來發現,要麼太麻煩,要麼不太好用.我想還是這個好,就把FOR改成了WHILE循環,有點偷工取巧的意思.哈哈,你先將就用吧!
#include<stdio.h>
int fun(char s[], int c)
{ int i=0, j=0;
while( s[i]!='\0')
{
if(s[i]!=c)
s[j++]=s[i];
i++;
}
s[j]=0;
}
void main()
{
int i;
char s[50]="turbo c and borland c",c;
scanf("%c",&c);
fun(s,c);
for(i=0;s[i]!='\0';i++)
printf("%c",s[i]);
}
㈢ 20分求c語言編程題答案
我這里有一些程序(dev-c++編譯器),雖然並不是你所想要的完美答案,但是其中的一些代碼,希望對你有所幫助:
No.1 有5個學生,每個學生有3門課的成績,從鍵盤輸入數據(包括學生號,姓名,3門課的成績),計算出平均成績,將原有數據和計算出的平均分數存放在磁碟文件stud中。
程序:
#include<stdio.h>
#include<stdlib.h>
struct student
{
char num[10];
char name[8];
int score[3];
float ave;
}stu[5];
int main()
{
int i,j,sum;
FILE *fp;
for(i=0;i<5;i++)
{
printf("\ninput score of student %d:\n",i+1);
printf("No.:");
scanf("%s",stu[i].num);
printf("name:");
scanf("%s",stu[i].name);
sum=0;
for(j=0;j<3;j++)
{
printf("score %d:",j+1);
scanf("%d",&stu[i].score[j]);
sum+=stu[i].score[j];
}
stu[i].ave=sum/3.0;
}
fp=fopen("stud","w");
for(i=0;i<5;i++)
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf("file write error\n");
fclose(fp);
fp=fopen("stud","r");
for(i=0;i<5;i++)
{
fread(&stu[i],sizeof(struct student),1,fp);
printf("\n%s,%s,%d,%d,%d,%6.2f\n",stu[i].num,stu[i].name,
stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].ave);
}
system("pause");
return 0;
}
No.2 將運行No.1程序所得到的stud文件中的學生數據按平均分進行排序處理,將已排序的學生數據存入一個新文件stu_sort中。
程序:
#include<stdio.h>
#include<stdlib.h>
#define N 10
struct student
{
char num[10];
char name[8];
int score[3];
float ave;
}st[N],temp;
int main()
{
FILE *fp;
int i,j,n;
if((fp=fopen("stud","r"))==NULL)
{
printf("can not open.");
exit(0);
}
printf("File 'stud':");
for(i=0;fread(&st[i],sizeof(struct student),1,fp)!=0;i++)
{
printf("\n%8s%8s",st[i].num,st[i].name);
for(j=0;j<3;j++)
printf("%8d",st[i].score[j]);
printf("%10.2f",st[i].ave);
}
printf("\n");
fclose(fp);
n=i;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if(st[i].ave<st[j].ave)
{
temp=st[i];
st[i]=st[j];
st[j]=temp;
}
printf("\nNow:");
fp=fopen("stu_sort","w");
for(i=0;i<n;i++)
{
fwrite(&st[i],sizeof(struct student),1,fp);
printf("\n%8s%8s",st[i].num,st[i].name);
for(j=0;j<3;j++)
printf("%8d",st[i].score[j]);
printf("%10.2f",st[i].ave);
}
printf("\n");
fclose(fp);
system("pause");
return 0;
}
No.3 將題No.2已排序的學生成績文件進行插入處理。插入一個學生的3門課程成績,程序先計算新插入學生的平均成績,然後將它按平均成績高低順序插入,插入後建立一個新文件。
程序:
#include<stdio.h>
#include<stdlib.h>
struct student
{
char num[10];
char name[8];
int score[3];
float ave;
}st[10],s;
int main()
{
FILE *fp,*fp1;
int i,j,t,n;
printf("\nNo.:");
scanf("%s",s.num);
printf("name:");
scanf("%s",s.name);
printf("score1,score2,score3:");
scanf("%d,%d,%d",&s.score[0],&s.score[1],&s.score[2]);
s.ave=(s.score[0]+s.score[1]+s.score[2])/3.0;
if((fp=fopen("stu_sort","r"))==NULL)
{
printf("can not open file.");
exit(0);
}
printf("Original data:\n");
for(i=0;fread(&st[i],sizeof(struct student),1,fp)!=0;i++)
{
printf("\n%8s%8s",st[i].num,st[i].name);
for(j=0;j<3;j++)
printf("%8d",st[i].score[j]);
printf("%10.2f",st[i].ave);
}
n=i;
for(t=0;st[t].ave>s.ave&&t<n;t++);
printf("\nNow:\n");
fp1=fopen("sort1.dat","w");
for(i=0;i<t;i++)
{
fwrite(&st[i],sizeof(struct student),1,fp1);
printf("\n%8s%8s",st[i].num,st[i].name);
for(j=0;j<3;j++)
printf("%8d",st[i].score[j]);
printf("%10.2f",st[t].ave);
}
fwrite(&s,sizeof(struct student),1,fp1);
printf("\n%8s%8s%8d%8d%8d%10.2f",s.num,s.name,s.score[0],
s.score[1],s.score[2],s.ave);
for(i=t;i<n;i++)
{
fwrite(&st[i],sizeof(struct student),1,fp1);
printf("\n%8s%8s",st[i].num,st[i].name);
for(j=0;j<3;j++)
printf("%8d",st[i].score[j]);
printf("%10.2f",st[i].ave);
}
printf("\n");
fclose(fp);
fclose(fp1);
system("pause");
return 0;
}
No.4 將No.3的結果仍存入原有的文件而不另建立新文件。
程序:
#include<stdio.h>
#include<stdlib.h>
struct student
{
char num[10];
char name[8];
int score[3];
float ave;
}st[10],s;
int main()
{
FILE *fp;
int i,j,t,n;
printf("\nNo.:");
scanf("%s",s.num);
printf("name:");
scanf("%s",s.name);
printf("score1,score2,score3:");
scanf("%d,%d,%d",&s.score[0],&s.score[1],&s.score[2]);
s.ave=(s.score[0]+s.score[1]+s.score[2])/3.0;
if((fp=fopen("stu_sort","r"))==NULL)
{
printf("can not open file.");
exit(0);
}
printf("Original data:\n");
for(i=0;fread(&st[i],sizeof(struct student),1,fp)!=0;i++)
{
printf("\n%8s%8s",st[i].num,st[i].name);
for(j=0;j<3;j++)
printf("%8d",st[i].score[j]);
printf("%10.2f",st[i].ave);
}
n=i;
for(t=0;st[t].ave>s.ave&&t<n;t++);
printf("\nNow:\n");
fp=fopen("stu_sort","w");
for(i=0;i<t;i++)
{
fwrite(&st[i],sizeof(struct student),1,fp);
printf("\n%8s%8s",st[i].num,st[i].name);
for(j=0;j<3;j++)
printf("%8d",st[i].score[j]);
printf("%10.2f",st[t].ave);
}
fwrite(&s,sizeof(struct student),1,fp);
printf("\n%8s%8s%8d%8d%8d%10.2f",s.num,s.name,s.score[0],
s.score[1],s.score[2],s.ave);
for(i=t;i<n;i++)
{
fwrite(&st[i],sizeof(struct student),1,fp);
printf("\n%8s%8s",st[i].num,st[i].name);
for(j=0;j<3;j++)
printf("%8d",st[i].score[j]);
printf("%10.2f",st[i].ave);
}
printf("\n");
fclose(fp);
system("pause");
return 0;
}
對鏈表的綜合操作:
程序:
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#define LEN sizeof(struct student)
struct student
{
long num;
float score;
struct student *next;
};
int n;
struct student *creat(void)
{
struct student *head;
struct student *p1,*p2;
n=0;
p1=p2=(struct student *)malloc(LEN);
scanf("%ld,%f",&p1->num,&p1->score);
head=NULL;
while(p1->num!=0)
{
n=n+1;
if(n==1) head=p1;
else p2->next=p1;
p2=p1;
p1=(struct student *)malloc(LEN);
scanf("%ld,%f",&p1->num,&p1->score);
}
p2->next=NULL;
return(head);
}
void print(struct student *head)
{
struct student *p;
printf("\nNow,These %d records are:\n",n);
p=head;
if(head!=NULL)
do
{
printf("%ld %5.1f\n",p->num,p->score);
p=p->next;
}while(p!=NULL);
}
struct student *del(struct student *head,long num)
{
struct student *p1,*p2;
if(head==NULL)
{
printf("\nlist null!\n");
return(head);
}
p1=head;
while(num!=p1->num&&p1->next!=NULL)
{
p2=p1;p1=p1->next;
}
if(num==p1->num)
{
if(p1==head) head=p1->next;
else p2->next=p1->next;
printf("delete:%ld\n",num);
n=n-1;
}
else printf("%ld not been found!\n",num);
return(head);
}
struct student *insert(struct student *head,struct student *stud)
{
struct student *p0,*p1,*p2;
p1=head;
p0=stud;
if(head==NULL)
{
head=p0;
p0->next=NULL;
}
else
{
while((p0->num>p1->num)&&(p1->next!=NULL))
{
p2=p1;
p1=p1->next;
}
if(p0->num<=p1->num)
{
if(head==p1) head=p0;
else
{
p2->next=p0;
p0->next=p1;
}
}
else
{
p1->next=p0;
p0->next=NULL;
}
}
n=n+1;
return(head);
}
int main()
{
struct student *head,*stu;
long del_num;
printf("input records:\n");
head=creat();
print(head);
printf("\ninput the deleted number:");
scanf("%ld",&del_num);
while(del_num!=0)
{
head=del(head,del_num);
print(head);
printf("\ninput the deleted number:");
scanf("%ld",&del_num);
}
printf("\ninput the inserted record:");
stu=(struct student *)malloc(LEN);
scanf("%ld,%f",&stu->num,&stu->score);
while(stu->num!=0)
{
head=insert(head,stu);
print(head);
printf("\ninput the inserted record:");
stu=(struct student *)malloc(LEN);
scanf("%ld,%f",&stu->num,&stu->score);
}
system("pause");
return 0;
}
㈣ 求幾道簡單C語言編程題答案
1.
#include
<stdio.h>
int
main()
{
int
y0,
m0,
d0,
y1,
m1,
d1,
age;
while
(
scanf("%d%d%d%d%d%d",
&y0,
&m0,
&d0,
&y1,
&m1,
&d1
)
){
age
=
y1
-
y0
-
1;
if
(
m1
>
m0
||
m1
==
m0
&&
d1
>=
d0
)
++age;
printf("年齡為:%d周歲!\n",
age);
}
return
0;
}
4.
#include
<stdio.h>
#include
<memory.h>
int
main()
{
char
p[500];
int
i,
count;
while
(
scanf("%s",
&p)
){
count
=
0;
for
(
i
=
0;
i
!=
strlen(p);
++i
)
if
(
p[i]
>=
'a'
&&
p[i]
<=
'z'
)
++count;
printf("%d\n",
count);
}
return
0;
}
2.
#include
<stdio.h>
int
main()
{
int
n;
while
(
scanf("%d",
&n)
){
if
(
(
n
&
1
)
==
0
)
printf("%d是偶數!\n",
n);
else
printf("%d,是奇數!\n",
n);
}
return
0;
}
第三題(用EFO結束)?EOF吧?EOF已經是文件尾,怎樣輸出結果?
㈤ C語言編程題,求答案+解釋,謝謝大佬
(1)這個位置,因為在主函數之外,只有一行。一般來說是#include了其他的庫,或者是#define了一些什麼,或者是前向聲明(但鑒於題目里掃視了一眼只有一個非主函數,所以不會是這個)。那我最大的傾向就是#include,接著我會直接看主函數
先學會看變數,可以看到題目里有三個變數X,Y1,Y2。和我們設置的變數不謀而合,接下來輸入X的值,直接就可以算Y1,Y2。因為剛剛記得只看到了一個外函數,而且下面兩個空是在形參上讓我們填空,我就回頭看了一眼題目,原來是函數的形式完全相同,只是改變了傳進去的參數,第一個直接傳x+8,第二個要傳sinx,那兩個答案就出來了,同時(1)的答案也出來了,因為sin()這個函數是在#include<math.h>裡面的
接著剩下最後一個空,我們看到被調函數fun裡面,這是一個返回類型float的函數,但是沒有返回值,所以我們需要return 一些什麼,很明顯這里只有一個能return的,那就是y
綜上
(1)#include<math.h>
(2)return y;
(3)x+8
(4)sin(x)
(在我寫完之後看到3分鍾前下面還有個答案,include用了""。需要說明的是,一般只有使用非庫頭文件,也就是自定義的頭文件時,會選擇"",這並不是一個好習慣,會不會引發報錯可以自己嘗試一下)
㈥ c語言編程題及答案
【4.1】已知銀行整存整取存款不同期限的月息利率分別為:
0.315% 期限一年
0.330% 期限二年
月息利率 = 0.345% 期限三年
0.375% 期限五年
0.420% 期限八年
要求輸入存錢的本金和期限,求到期時能從銀行得到的利息與本金的合計。
【4.2】輸入年份year和月month,求該月有多少天。判斷是否為閏年,可用如下C語言表達式:year%4==0 && year0!=0 || year@0==0。若表達式成立(即表達式值為1),則year為閏年;否則,表達式不成立(即值為0),year為平年。
【4.3】編寫一個簡單計算器程序,輸入格式為:data1 op data2。其中data1和data2是參加運算的兩個數,op為運算符,它的取值只能是+、-、*、/。
【4.4】輸入n值,輸出如圖所示矩形。
【4.5】輸入n值,輸出如圖所示平行四邊形。
【4.6】輸入n值,輸出如圖所示高為n的等腰三角形。
【4.7】輸入n值,輸出如圖所示高為n的等腰三角形。
【4.8】輸入n值,輸出如圖所示高和上底均為n的等腰梯形。
【4.9】輸入n值,輸出如圖所示高和上底均為n的等腰空心梯形。
【4.10】輸入n值,輸出如圖所示邊長為n的空心正六邊型。
㈦ 求c語言編程題的答案
#include<stdio.h>
typedefstructdemo
{
intdata[10];
intlength;
}Demo;
voidInit(Demo*d)
{
d->length=0;
}
voidputValue(Demo*d)
{
intn=0;
intj=0;
while(1)
{
printf("請輸入任意整數:");
scanf("%d",&n);
if(n==-1)
break;
d->data[j]=n;
d->length++;
j++;
}
}
voidvisitDemo(Demod){
printf("值為:");
for(inti=0;i<d.length;i++){
printf("%d,",d.data[i]);
}
printf(" ");
printf("長度為:%d",d.length);
}
intmain()
{
Demod;
Init(&d);
putValue(&d);
visitDemo(d);
return0;
}
測試結果:
望採納,謝謝
㈧ 四道C語言編程題,急求答案
//第3題
#include <stdio.h>
#include <string.h>
int main(void)
{
char f_name[24];
char str[100];
printf("please enther the file name:");
scanf("%s",str);
sprintf(f_name,"%s.txt",str);
FILE *fp=fopen(f_name,"w+");
printf("please enther the string:");
scanf("%s",str);
fprintf(fp,"%s%d",str,strlen(str));
return 0;
}
//第4題
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct {
int num;
char name[20];
int math;
int chin;
int eng;
int avg;
}student;
void cal_avg(student *stu)
{
int i=0;
for (i;i<5;i++)
{
stu[i].avg=(stu[i].chin+stu[i].math+stu[i].eng)/3;
}
}
int output(student *stu)
{
FILE *fp=fopen("stud.txt","w+");
if (fp==NULL)
{
printf("can't open file!");
return -1;
}
fwrite(stu,sizeof(student),5,fp);
return 1;
}
void input(student *stu)
{
int i=0;
for (i;i<5;i++)
{
stu[i].num=i+1;
printf("please enther the %dth student's name:",i+1);
scanf("%s",stu[i].name);
printf("please enther the %dth student's math grade:",i+1);
scanf("%d",&stu[i].math);
printf("please enther the %dth student's chin grade:",i+1);
scanf("%d",&stu[i].chin);
printf("please enther the %dth student's eng grade:",i+1);
scanf("%d",&stu[i].eng);
printf("/********************************************/\n");
}
}
int main(void)
{
student stu[5];
input(stu);
cal_avg(stu);
output(stu);
return 0;
}
㈨ 求這道c語言編程題的答案
部分測試樣例