- C語言程序基礎(chǔ)練習(xí)題帶答案 推薦度:
- 相關(guān)推薦
C語言的基礎(chǔ)練習(xí)
一、實(shí)驗(yàn)?zāi)康?/strong>
對(duì)C語言的復(fù)習(xí),增強(qiáng)學(xué)生對(duì)結(jié)構(gòu)體數(shù)組和指針的學(xué)習(xí),尤以結(jié)構(gòu)體的應(yīng)用和指針的操作作為重點(diǎn)。
二、問題描述
1、 構(gòu)造一個(gè)學(xué)生結(jié)構(gòu)體,成員包括學(xué)號(hào),姓名,四門成績,以及平均成績;
2、 從鍵盤上輸入學(xué)生的學(xué)號(hào),姓名和四門成績;
3、 找出學(xué)生中考試沒有通過的學(xué)生姓名并輸出;找出考試在90分以上的學(xué)生并輸出。
三、實(shí)驗(yàn)要求
1、 要求分別用數(shù)組和鏈表存儲(chǔ)學(xué)生的記錄,并設(shè)計(jì)出輸入和查找的基本操作算法。
2、 在實(shí)驗(yàn)過程中,分析算法的時(shí)間復(fù)雜度和空間復(fù)雜度進(jìn)行分析。
四、實(shí)驗(yàn)環(huán)境
PC微機(jī)
DOS操作系統(tǒng)或 Windows 操作系統(tǒng)
Turbo C 程序集成環(huán)境或 Visual C++ 程序集成環(huán)境
五、實(shí)驗(yàn)步驟
1、用所選擇的語言實(shí)現(xiàn)算法;
3、 測(cè)試程序,并對(duì)算法進(jìn)行時(shí)間和空間復(fù)雜度分析。
結(jié)構(gòu)體數(shù)組方法及測(cè)試結(jié)果:
#include
using namespace std;
struct student
{
int num;
char name[20];
float score[4];
float ave;
}; //構(gòu)造結(jié)構(gòu)體student int i,j,k,m,n,a[100],b[100];
struct student stu[100];
int main()
cout<<"Please input the number:(0 is end)"; cin>>stu[0].num;
i=0;
while (stu[i].num)
{
cout<<"Please input the name:"; cin>>stu[;
cout<<"Please input the scores:"; stu[i].ave-0;
for (j=0;j<=3;j++)
{
cin>>stu[i].score[j];
stu[i].ave+=stu[i].score[j];
}
stu[i].ave=stu[i].ave/4.0;
i++;
cout<<"Please input the number:(0 is end)"; cin>>stu[i].num;
} n=i-1;
k=m=0;
for (i=0;i<=n;i++)
{
if (stu[i].ave>90)
a[k++]=i; else
{
for (j=0;j<=3;j++)
if (stu[i].score[j]<60)
{
b[m++]=i; goto loop;
}
} //以上為輸入操作 //使用a[]存放90分以上的學(xué)生位置//使用a[]存放未通過的學(xué)生位置 {
loop:; } //以上為查找操作 if (k>0)
{ for (i=0;i<=k-1;i++) cout<<stu[a[i]].name<<" ";
cout<<"is(are) 90 above."<<endl;
} //輸出90以上的學(xué)生 if (m>0) {
for (i=0;i<=m-1;i++)
} cout<<stu[b[i]].name<<" "; cout<<"did not pass the exam."<<endl; } //輸出未通過學(xué)生 return 0;
鏈表方法及測(cè)試結(jié)果:
#include
using namespace std;
struct student
{
long num;
char name[20];
float score[4];
float ave;
struct student *next;
};
int main()
{
struct student *head,*p,*q;
int number,k,j,m,i;
char *a[100],*b[100];
head=0;
k=0;
cout<<"input the number of student:"; cin>>number;
while (number!=0)
{
k++;
p=new student;
p->num=number;
cout<<"Please input the name:"; cin>>p->name;
cout<<"Please input the scores:"; p->ave=0;
for (j=0;j<=3;j++)
{
cin>>p->score[j];
p->ave+=p->score[j];
}
p->ave=p->ave/4.0;
if (k==1)
head=p;
else q->next=p;
q=p;
cout<<"Please input the number:(0 is end)"; cin>>number;
} p->next=0;
p=head;
k=m=0;
while (p) //以上為輸入操作
{
if (p->ave>90)
a[k++]=p->name; else
{
for (j=0;j<=3;j++) if="" p-="">score[j]<60) {
b[m++]=p->name; goto loop;
}
}
loop: p=p->next;
} if (k>0)
{
for (i=0;i<=k-1;i++)
cout<<a[i]<<" ";
cout<<"is(are) 90 above."<0)
{
for (i=0;i<=m-1;i++)
cout<<b[i]<<" ";
cout<<"did not pass the exam."<<endl; } return 0;
} //以上為查找操作 //輸出90以上的學(xué)生//輸出未通過的學(xué)生
【C語言的基礎(chǔ)練習(xí)】相關(guān)文章:
C語言編程基礎(chǔ)08-17
c語言基礎(chǔ)習(xí)題10-13
C語言基礎(chǔ)知識(shí)10-13
C語言模擬試題練習(xí)08-11
C語言基礎(chǔ)之編碼規(guī)范07-15
c語言入門基礎(chǔ)知識(shí)07-18
C語言基礎(chǔ)知識(shí)匯總07-15
C語言考點(diǎn)題型練習(xí)05-10