×

c语言程序设计答案

c语言程序设计答案(c语言程序设计)

admin admin 发表于2023-04-10 10:40:07 浏览64 评论0

抢沙发发表评论

本文目录一览:

求29.30.31答案和解释 c语言程序设计

29、数组的下标值必须是整数,且不能越界,数组a的下标值范围是0--9

A

*(a+i)

等价于

a[i]

B

a[p-a+i]

等价于

a[i]

因为

p=a

所以

p-a+i=i

C

p+i

是数组中下标值为i的元素的地址

D

*(a[i])

等价于

a[i]

所以

本题答案是

C

30、strcpy(s1,s2)字符串赋值函数,把串s2放在s1的位置上,所以s1必须有足够的存储空间来存放串s2

A

st1

是一维数组可以存放字符串teacher1

B

st4

是一个指针变量,但是该指针指向一个连续的存储空间

teacher1

C

st3是指针变量,但是该指针没有指向任何存储空间,所以不能把串teacher1放在st3

D

st1

是一维数组可以存放字符串teacher1

所以

本题答案

C

31、p

q

是指针变量,存放的是n的地址

A

p=q

p

q

指针类型相同

可以直接赋值

B

*p=*q

也可以

//

p=q=n

*p=*q=n

C

n=*p

原理同

B项

D

p是指针,应该存放n的地址,即p=n

所以本题答案是:

D

求c语言程序设计答案

#include

fstream

#include

string.h

#include

iostream

#include

conio.h//用getch();

using

namespace

std;

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Student类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

class

Student

{

public:

char

name[20];

char

Class[20];

char

Id[20];

int

Cnum;

//C课程得分

int

Mnum;

//数学课程得分

int

Enum;

//英语课程得分

int

Gnum;

//体育

int

sum;

//总分

int

ave;

//平均分

Student

*

Next;

void

Input()

{

cout"\t\t请输入学生的姓名:";

cinname;

cout"\t\t请输入学生的班级:";

cinClass;

cout"\t\t请输入学生的学号:";

cinId;

cout"\t\t请输入C++的成绩:";

cinCnum;

cout"\t\t请输入数学课程的成绩:";

cinMnum;

cout"\t\t请输入英语课程的成绩:";

cinEnum;

cout"\t\t请输入日语的成绩:";

cinGnum;

sum=Cnum+Mnum+Enum+Gnum;

ave=(Cnum+Mnum+Enum+Gnum)/4;

}

void

ReadFile(istream

in)

{

innameClassIdCnumMnumEnumGnumavesum;

}

void

Show()

{

cout"姓名:"nameendl"班级:"Classendl"学号:"Idendl"C++:"Cnumendl

"数学:"Mnumendl"外语:"Enumendl"日语:"Gnumendl"平均成绩:"aveendl"总成绩:"sumendlendlendl;

}

};

//﹌﹌﹌﹌﹌﹌﹌﹌﹌Studentmassage类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

class

Studentmassage

{

public:

Studentmassage();

~Studentmassage();

void

ShowMenu();

void

Find();

void

Save();

void

ModifyItem();

void

RemoveItem();

void

Swap(Student

*,Student

*);

void

Sort();

int

ListCount();

void

Display()

{

for(Student

*

p=Head-Next;p!=End;p=p-Next)

p-Show();

cout"输入任意字符!继续……";

getch();

}

void

AddItem()

{

End-Input();

End-Next=new

Student;

End=End-Next;

cout"添加成功!"endl;

cout"输入任意字符!继续……";

getch();

}

private:

Student

*

Head,*

End;

ifstream

in;

ofstream

out;

Student

*FindItem(char

*

name)

{

for(Student

*

p=Head;p-Next!=End;p=p-Next)

if(!strcmp(p-Next-name,name))return

p;

return

NULL;

}

Student

*FindID(char

*

Id)

{

for(Student

*

p=Head;p-Next!=End;p=p-Next)

if(!strcmp(p-Next-Id,Id))return

p;

return

NULL;

}

Student

*FindCLASS(char

*

Class)

{

for(Student

*

p=Head;p-Next!=End;p=p-Next)

if(!strcmp(p-Next-Class,Class))return

p;

return

NULL;

}

}Grade;

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌构造函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

Studentmassage::Studentmassage()

{

Head=new

Student;

Head-Next=new

Student;

End=Head-Next;

in.open("sort.txt");

if(!in)

cout"这是一个新系统,无学生信息。请先输入。"endl;

else

{

while(!in.eof())

{

End-ReadFile(in);

if(End-name[0]=='\0')break;

End-Next=new

Student;

End=End-Next;

}

in.close();

cout"\t\t读取学生信息成功!"endl;

}

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析构函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

Studentmassage::~Studentmassage()

{

Save();

for(Student

*

temp;Head-Next!=End;)

{

temp=Head-Next;

Head-Next=Head-Next-Next;

delete

temp;

}

delete

Head,End;

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜单﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

void

Studentmassage::ShowMenu()

{

cout"〓〓〓〓〓〓〓〓〓〓

〓〓〓〓〓〓〓〓〓〓"endl;

cout"〓〓〓〓〓〓〓★★★★★

★★★★★★★

★★★★★〓〓〓〓〓〓〓"endl;

cout"〓〓〓〓〓〓〓〓〓★

1.增加学生成绩

★〓〓〓〓〓〓〓〓〓"endl;

cout"〓〓〓〓〓〓〓〓〓★

2.显示学生成绩

★〓〓〓〓〓〓〓〓〓"endl;

cout"〓〓〓〓〓〓〓〓〓★

3.排序统计成绩

★〓〓〓〓〓〓〓〓〓"endl;

cout"〓〓〓〓〓〓〓〓〓★

4.查找学生成绩

★〓〓〓〓〓〓〓〓〓"endl;

cout"〓〓〓〓〓〓〓〓〓★

5.删除学生成绩

★〓〓〓〓〓〓〓〓〓"endl;

cout"〓〓〓〓〓〓〓〓〓★

6.修改学生信息

★〓〓〓〓〓〓〓〓〓"endl;

cout"〓〓〓〓〓〓〓〓〓★

0.安全退出系统

★〓〓〓〓〓〓〓〓〓"endl;

cout"\n\t\t\n\t\t请选择:";

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

void

Studentmassage::Find()

{

char

name[20]

,Id[10],Class[20];

int

x;

Student

*

p=NULL;

cout"\n\t\t*********************************\n";

cout"\t\t※

1.按学生的姓名查找\n\t\t※

2.按学生学号查找\n\t\t※

3.按学生班级查找";

cout"\n\t\t*********************************\n请选择:";

cinx;

switch(x)

{

case

1:{cout"\t\t请输入要查找的学生的姓名:";cinname;

if(p=FindItem(name))

{

p-Next-Show();

cout"输入任意字符!继续……";

getch();

}

else

{

cout"\t\t没有找到该姓名的学生!"'\n'endl;

cout"输入任意字符!继续……";

getch();

}

}break;

case

2:

{

cout"\t\t请输入要查找的学生的学号:";cinId;

if(p=FindID(Id))

{

p-Next-Show();

cout"输入任意字符!继续……";

getch();

}

else

{

cout"\t\t没有找到该学号的学生!"'\n'endl;

cout"输入任意字符!继续……";

getch();

}

}break;

case

3:{cout"\t\t请输入要查找的学生的班级:";cinClass;

if(p=FindCLASS(Class))

{

p-Next-Show();

cout"输入任意字符!继续……";

getch();

}

else

{

cout"\t\t没有找到该班级的学生!"'\n'endl;

cout"输入任意字符!继续……";

getch();

}

}break;

}

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌修改信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

void

Studentmassage::ModifyItem()

//修改信息

{

char

ID[20];

Student

*

p=NULL;

cout"\t\t请输入要修改的人的学号:";cinID;

if(p=FindID(ID))

{

cout"\t\t已找到学生的信息,请输入新的信息!"endl;

p-Next-Input();

cout"修改成功!"endl;

cout"输入任意字符!继续……";

getch();

}

else

{

cout"\t\t没有找到!"endl;

cout"输入任意字符!继续……";

getch();

}

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌删除信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

void

Studentmassage::RemoveItem()

//

删除信息

{

char

ID[20];

Student

*

p=NULL,*temp=NULL;

cout"\t\t请输入要删除的学生的学号:";cinID;

if(p=FindID(ID))

{

temp=p-Next;

p-Next=p-Next-Next;

delete

temp;

cout"\t\t删除成功!"endl;

cout"输入任意字符!继续……";

getch();

}

else

{

cout"\t\t没有找到!"endl;

cout"输入任意字符!继续……";

getch();

}

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

void

Studentmassage::Swap(Student

*p1,

Student

*p2)

{

Student

*temp=new

Student;

strcpy(temp-name,p1-name);

strcpy(temp-Id,p1-Id);

temp-Cnum=p1-Cnum;

temp-Mnum=p1-Mnum;

temp-Enum=p1-Enum;

temp-sum=p1-sum;

strcpy(p1-name,p2-name);

strcpy(p1-Id,p2-Id);

p1-Cnum=p2-Cnum;

p1-Mnum=p2-Mnum;

p1-Enum=p2-Enum;

p1-sum=p2-sum;

strcpy(p2-name,temp-name);

strcpy(p2-Id,temp-Id);

p2-Cnum=temp-Cnum;

p2-Mnum=temp-Mnum;

p2-Enum=temp-Enum;

p2-sum=temp-sum;

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

int

Studentmassage::ListCount()//统计当前的记录总数

{

if(!

Head)

return

0;

int

n=0;

for(Student

*

p=Head-Next;p!=End;p=p-Next)

{

n++;

}

return

n;

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

void

Studentmassage::Sort()//对当前学生进行排序

{

cout

"Sorting..."endl;

Student

*p=NULL,*p1=NULL,*k=NULL;

int

n=Studentmassage::ListCount();

if(n2)

return;

for(p=Head-Next;p!=End;p=p-Next)

for(k=p-Next;k!=End;k=k-Next)

{

if(p-sumk-sum)

{

Studentmassage::Swap(p,k);

}

}

cout

"排序完成!"endl;

getch();

return;

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌保存函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

void

Studentmassage::Save()

{

out.open("sort.txt");

for(Student

*p=Head-Next;p!=End;p=p-Next)

outp-name"\t"p-Class"\t"p-Id"\t"

p-Cnum"\t"p-Mnum"\t"p-Enum"\t"p-Gnum"\t"p-ave"\t"p-sum'\n';

out.close();

}

void

code()

//密码

{

char

s1[20]="123",s2[20];

cout"请输入密码:";

while(cins2)

{

if(!strcmp(s1,s2))

{

Grade.ModifyItem();break;

}

else

cout"你输入的密码不正确,请重新输入:";

}

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌主函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

int

main()

{

int

x,i=0;

bool

quit=false;

cout"\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§"endl;

for(i=0;i3;i++)

cout"\t\t◎\t\t\t\t\t\t

◎"endl;

cout"\t\t◎★★★★【

欢迎进入学生成绩管理系统

】★★★★◎"endl;

for(i=0;i3;i++)

cout"\t\t◎\t\t\t\t\t\t

◎"endl;

cout"\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§\n"endl;;

cout"请按任意键开始……";

getch();

while(!quit)

{

system("cls");

Grade.ShowMenu();

cinx;

switch(x)

{

case

0:cout"★★★★感谢您的使用★★★★"endl;quit=true;break;

case

1:Grade.AddItem();break;

case

2:Grade.Display();break;

case

3:Grade.Sort();break;

case

4:Grade.Find();break;

case

5:Grade.RemoveItem();break;

case

6:code();break;

}

}

return

0;

}

我稍微改了下,应该可以用~

额~~你们一定要C编吗~C++不可以嘛?

C语言程序设计试题 求标准答案 都是多选

1、答案:A

(单引号括起来的都是字符,而且一对单引号最多对应一个字符,\反斜杠是转义字符的开始,\72是ASCII码对应的字母H。也就是把H这个字母存到了变量char a中。就一个字符H。)

2、ACDE

解析:

int a=3,b=4,c=5;,

A、ab

B、a<=b

C、(a||b)>c

D、a<=(b||c)

E、!((a<b)!c||b)

优先级由大到小:() ! ||

A选项,34错误,逻辑值0。

B选项,3=4正确,逻辑值1。

C选项,(3||4)5,(3||4)"或"逻辑运算符两边只要有一个非0的整个值就是1,15错,逻辑值0。

D选项,3=(4||5)错误,逻辑值0。

E选项,!((34)!5||4),先(34)逻辑值1,!5逻辑值0,10是0,0||4是1,!1是0,所以逻辑值0。

3、AC。

解析:A可以,B答案b不能被赋值(自左向右,计算||左侧就已经是1了右边就不用再计算了整个表达式无论右边如何整个逻辑值必定是1,计算机也就不会计算右边了)C可以(因为两边都必须计算才能得出最后的逻辑值答案),D不可以a不能被赋值(左边就一个a,构不成赋值,可能存放一个随机值,右边可以被赋值)。-c语言程序设计答案

4、ABCD。

外部函数几乎可以被所有函数调用。只要开头#include” "引入。