您当前的位置:首页 > 互联网教程

C语言二级考试问题

发布时间:2025-05-12 08:22:33    发布人:远客网络

C语言二级考试问题

一、C语言二级考试问题

LZ能实际实验来获取答案这点值得肯定,计算机编程本来就是动手的学问。

1、选C。至于D,C语言国际标准没有规定共用体(联合)类型变量不能做函数参数的。持这种说法的教材是以讹传讹。或者说,有谁发现哪种通用的C编译器对以共用体(联合)类型变量做函数参数的代码报错了?

至于LZ实验的结果,得等理解了两种知识后才能解释,1.共用体(联合)的内存布局,2.IEEE-754浮点数的存储格式。

2、选D。其实写这样的代码纯粹是蛋疼。加花括号及缩进之后如下(其他词法无需任何变动)

elsex=7;

C基于语法上的嵌套原则的就近匹配随处可见。理论上讲起来很容易,但直观上不容易看,就像盒子套盒子,容易理解但看着容易晕。

C基于语法上的嵌套原则的就近匹配随处可见。理论上讲起来很容易,但直观上不容易看,就像盒子套盒子,容易理解但看着容易晕。

两原则:一对匹配的if-else结构是一个整体的语句块,必定是可以用花括号把它们单独包围在一起的。以下这个语句的语法

第二,形式上,一对匹配的if-else结构里面if与else中间必定是隔着两样东西,一对圆括号和一个语句块,不多不少。

这里的语句块可以是一个普通语句,或者是一对花括号包围起来的东西或者叫块,或者是if语句、if-else语句、for语句、do-while语句等等语句块,单只有一个分号或一对花括号的空语句空块也可以。这些复合语句里面可以是更复杂但按照类似规则组合起来的语句,这就是嵌套原则。

else语句不能单独存在,那算是语法错误。

方法上,每看到一个else语句就按照第二条往回寻找最近的未匹配的if语句,将它们作为一个整体绑定,或者按第一条用花括号包围起来。

注意C语言没有elseif或者elif关键字,但else if两关键字连用的结果与之等效,将一对if-else语句接给一个else后面,结果就等效了,想想是不是。原因就是else的“就近匹配原则”。

3、continue语句的准确语义是直接跳到循环的结尾。也就是按流程图中直接跳到循环体之后的下一环节。或者说,略过循环体中continue语句后面的语句直接计算增量表达式。

二、大学C语言考试求帮忙!~

给个学生成绩管理的把,在VC上运行过的,TC的不知道,你自己试下,不过可能会出现很多问题,这个是C++版本的,你要把它改成C版本,而且改好了之后也不一定可行,主要是TC对标准支持也不好,而且也不利于调试...还是不要用TC了

void play(){cout<<name<<"学生的学号是"<<num<<",数学:"<<x<<",语文:"<<y<<",英语:"<<z<<",总分:"<<AA<<endl;};

student(string sname,long snum,int sx,int sy,int sz)

cout<<"\n**增加的学生**\n"<<endl;

cout<<"请输入学生的(中间用空格间隔)"<<endl;

cout<<"姓名学号数学成绩语文成绩英语成绩:"<<endl;

cin>>name1>>num1>>x1>>y1>>z1;

q=new student(name1,num1,x1,y1,z1);

cout<<"学号已存在,请重新输入"<<endl;

cout<<"学号已存在,请重新输入"<<endl;

cout<<"输入完毕"<<endl;

cout<<"\n**删除学生信息**\n";

cout<<"请输入想要删除学生的学号:";

if(p1!=NULL)//若找到结点,则删除

cout<<"确定删除吗?[Y/N]"<<endl;

if(toupper(c)!='Y') return;

if(p1==stu)//若要删除的结点是第一个结点

else//若要删除的结点是后续结点

cout<<"找到学号为"<<num1<<"的学生,并删除\n";

cout<<"未找到想要删除的学生!\n";

cout<<"\n**修改学生信息**\n";

cout<<"输入要修改学生的学号";

cout<<"学号是"<<num1<<"的学生的信息"<<endl;

cout<<"姓名"<<p1->name<<"数学"<<p1->x<<"语文"<<p1->y<<"英语"<<p1->z<<endl;

cout<<"请输入修改后的信息:姓名数学成绩语文成绩英语成绩"<<endl;

cin>>p1->name>>p1->x>>p1->y>>p1->z;

p1->AA=p1->x+p1->y+p1->z;

cout<<"修改成功"<<endl;

cout<<"\n**查询学生信息**\n"<<endl;

cout<<"请输入查询方式:"<<endl;

cout<<"1.按学号查询"<<endl;

cout<<"2.按姓名查询"<<endl;

cout<<"3.返回"<<endl;

cout<<"要查询的学号"<<endl;

cout<<"学号是"<<num1<<"的学生的信息"<<endl;

cout<<"姓名:"<<p1->name<<"数学:"<<p1->x<<"语文:"<<p1->y<<"英语:"<<p1->z<<endl;

cout<<"要查询的学生姓名"<<endl;

cout<<name1<<"的学生的信息"<<endl;

cout<<"学号:"<<p1->num<<"数学:"<<p1->x<<"语文:"<<p1->y<<"英语:"<<p1->z<<endl;

cout<<"共有"<<n<<"条信息..."<<endl;

if(p1->num>p1->next->num)//如果头结点大于第二个的

p1->next=p1->next->next;

while(p1->next->next)//中间的交换

if(p1->num>p1->next->num)

p1->next=p1->next->next;

void cla::psx()//按数学成绩排序

cout<<"共有"<<n<<"条信息..."<<endl;

if(p1->x>p1->next->x)//如果头结点大于第二个的

p1->next=p1->next->next;

while(p1->next->next)//中间的交换

if(p1->x>p1->next->x)

p1->next=p1->next->next;

void cla::pyw()//按语文成绩排序

cout<<"共有"<<n<<"条信息..."<<endl;

if(p1->y>p1->next->y)//如果头结点大于第二个的

p1->next=p1->next->next;

while(p1->next->next)//中间的交换

if(p1->y>p1->next->y)

p1->next=p1->next->next;

void cla::pyy()//按英语成绩排序

cout<<"共有"<<n<<"条信息..."<<endl;

if(p1->z>p1->next->z)//如果头结点大于第二个的

p1->next=p1->next->next;

while(p1->next->next)//中间的交换

if(p1->z>p1->next->z)

p1->next=p1->next->next;

cout<<"共有"<<n<<"条信息..."<<endl;

if(p1->AA>p1->next->AA)//如果头结点大于第二个的

p1->next=p1->next->next;

while(p1->next->next)//中间的交换

if(p1->AA>p1->next->AA)

p1->next=p1->next->next;

cout<<"请选择以何种方式排序:"<<endl;

cout<<"1……以学号排序"<<endl;

cout<<"2……以数学成绩排序"<<endl;

cout<<"3……以语文成绩排序"<<endl;

cout<<"4……以英语成绩排序"<<endl;

cout<<"5……以总分排序"<<endl;

cout<<"6……返回"<<endl;

cout<<"请选择(1-6)"<<endl;

case'1':pxh(); break;

case'2':psx(); break;

case'3':pyw(); break;

case'4':pyy(); break;

case'5':pAA(); break;

cout<<"\n保存学生信息(将覆盖原文件),是否继续?[Y/N]:"; cin>>c;

if(toupper(c)!='Y') return;

ofstream tfile("date.txt",ios_base::binary);

tfile<<p->name<<"\t"<<p->num<<"\t"<<p->x<<"\t"<<p->y<<"\t"<<p->z;

cout<<"保存完毕..."<<endl;

ifstream tfile("date.txt",ios_base::binary);

tfile>>name1>>num1>>x1>>y1>>z1;

s=new student(name1,num1,x1,y1,z1);

while(p2->next)//查找尾结点

tfile>>name1>>num1>>x1>>y1>>z1;

cout<<"\n学生信息已经装入...\n";

cout<<"\n学生成绩管理系统\n";

cout<<"**************************************\n";

cout<<"作者:软件工程06110119:zgjxwl\n";

cout<<" 1……增加学生\n";

cout<<" 2……删除学生\n";

cout<<" 3……修改学生\n";

cout<<" 4……查询学生信息\n";

cout<<" 5……排序\n";

cout<<" 6……保存信息\n";

cout<<" 7……读取信息\n";

cout<<" 8……退出\n";

cout<<"**************************************\n";

case'1': a.sadd();break;

case'2': a.sremove();break;

case'3': a.samend();break;

case'4': a.ssearch();break;

case'5': a.staxis();break;

case'6': a.ssave();break;

case'7': a.sload();break;

三、C语言考试速度求解啊!!速度

本人C语言新手,除第一题会做,其它的都不会做。

2.输入两个整数,若他们的平方和大于100,则输出该平方和的百位数以上(包括百位数字)的各个位数字,否则输出两个整数的和。

3.在键盘上输入若干字符,把其中的小写字母转换成大写字母,其他的字符不变,最后把处理结果输出到屏幕上。

5.假设今天是星期天,编写一程序,求123456天后是星期几。

6.编写一程序,输出1-99之间不能被2和3整除的数,按10个数一行的格式排列。

7.编写一个程序实现累加器功能,把用户输入的数据累加,直到输入0为止,输出累加的结果。

8.从三个红球五个白球六个黑球中任意取出8个球,且其中必须有白球,编程输出所有可能的方案。



相关内容FAQs: