c语言答案,c语言题,急求大神给我答案
大家好,今天来为大家分享c语言答案的一些知识点,和c语言题,急求大神给我答案的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
C语言题目 多项选择(至少两个正确答案)
1.以下选项是C语言关键字的是(A、C、D)。
A.main B.FOR C.break D.void
2.以下选项可作为C语言合法整数的是(A、B、C)。
A.12345L B.0xabff C.0678 D.x3f0
3.代数式ae/(bc)的正确C语言表达式是( A、B、D)。
A.a/b/c*e B.a*e/b/c C.a*e/b*c D.a*e/c/b
4.设有说明:int a,b[3]={1,2,3},*p;下面能够正确执行的语句有(C、D)。
A.p=*b; B.a= p; C.p= b+1; D.a=*p;
5.已知ch是字符型变量,以下正确的赋值语句是(B、C、D)。
A.ch='a+b' B.ch='\0' C.ch='\08' D.ch=5+9
6.以下选项可作为C语言合法常量的是(A、B)。
A.1U B.0678 C.0XABCD12L D.2005F
7.以下不能定义为用户标识符的是(A、C、D)。
A.b.c B.DO C.3com D.char
8.对于下面关于数组声明,正确的是(A、B、D)。
A.int x[][5]; B.int y[]={0}; C.int z[2,3]; D.char s[11]=“abc\ndef\n”;
9.设有说明int a=0,b=1,c=2;下面表达式的值为1(对于逻辑表达式代表非0)的有(B、D)。
A.a&& b B.++a C.!a&& b>c D.c||a
10.引用数组元素时,其数组下标表达式允许是(A、B)。
A.整型常量 B.整型表达式 C.任何类型的表达式 D.任何类型的函数调用
c语言题,急求大神给我答案
简单写了一个输入及显示程序。
默认#define DEBUG 0,定义这个是为了调试用,免得每次都要输入数据,麻烦;想要调试,设DEBUG成1就好。
具体代码示例:
#include<stdio.h>
#include<string.h>
#include<malloc.h>
#defineLENsizeof(structstudent)
#defineDEBUG0
structsubject{
intmath;//数字成绩
intenglish;//英语成绩
intchinese;//语文成绩
intchemistry;//化学成绩
intphysics;//物理成绩
};
structstudent
{
longintid;
charname[20];
charsex[2];
longbirthday;
chargrade[20];
structsubjectreport;
structstudent*next;
};
structstudent*insertOneStudentMessage(structstudent*header){
structstudent*p=(structstudent*)malloc(LEN);
scanf("%ld%s%s%ld%s%d%d%d%d%d",&p->id,p->name,p->sex,&p->birthday,p->grade,
&p->report.math,&p->report.english,&p->report.chinese,&p->report.chemistry,&p->report.physics);
p->next=header;
returnp;
}
structstudent*inputMoreStudentMessages(structstudent*header){
inti,n=0;
printf("请输入要录入的学生信息数:");
scanf("%d",&n);
for(i=0;i<n;i++){
printf("\n录入第%d条数据(学号,名字,性别,生日,班级,数学成绩,英文成绩,语文成绩,化学成绩,物理成绩):\n",i+1);
header=insertOneStudentMessage(header);
}
returnheader;
}
voidqueryById(structstudent*header,longintid){
structstudent*p=header;
while(p!=NULL){
if(p->id==id){
break;
}
p=p->next;
}
if(p==NULL){
printf("没有学号为%ld的学生信息。\n",id);
}else{
printf("查询学号为%ld的学生信息结果:\n",id);
printf("名字:%s\n",p->name);
printf("性别:%s\n",p->sex);
printf("生日:%ld\n",p->birthday);
printf("班级:%s\n",p->grade);
printf("数学成绩:%d\n",p->report.math);
printf("英文成绩:%d\n",p->report.english);
printf("语文成绩:%d\n",p->report.chinese);
printf("化学成绩:%d\n",p->report.chemistry);
printf("物理成绩:%d\n",p->report.physics);
}
}
intcompareByType(structstudent*a,structstudent*b,inttype){
switch(type){
case0:
return(a->report.math<b->report.math);
case1:
return(a->report.english<b->report.english);
case2:
return(a->report.chinese<b->report.chinese);
case3:
return(a->report.chemistry<b->report.chemistry);
case4:
return(a->report.physics<b->report.physics);
}
return0;
}
structstudent*sortByClass(structstudent*header,inttype){
structstudent*p;
structstudent*pre;
structstudent*next;
structstudent*temp;
if(header==NULL){
returnNULL;
}
temp=pre=p=header;
next=p->next;
while(next!=NULL){
p=header;
pre=header;
while(p!=next){
if(compareByType(next,p,type)){
//插入p前面
if(p==header){
temp->next=next->next;
next->next=header;
header=next;
next=temp;
break;
}else{
temp->next=next->next;
pre->next=next;
next->next=p;
next=temp;
break;
}
}else{
pre=p;
p=p->next;
}
}
temp=next;
next=next->next;
}
returnheader;
}
voidprintInfo(){
printf("0.退出程序\n");
printf("1.录入一个学生信息\n");
printf("2.录入多个学生信息\n");
printf("3.查询指定学号的学生信息\n");
printf("4.按数学成绩升序列出所有学生信息\n");
printf("5.按英文成绩升序列出所有学生信息\n");
printf("6.按语文成绩升序列出所有学生信息\n");
printf("7.按化学成绩升序列出所有学生信息\n");
printf("8.按物理成绩升序列出所有学生信息\n");
}
voidprintAll(structstudent*header){
structstudent*p=header;
printf("学号,名字,性别,生日,班级,数学,英文,语文,化学,物理\n");
while(p!=NULL){
printf("%ld%s%s%ld%s%3d%3d%3d%3d%3d\n",
p->id,p->name,p->sex,p->birthday,p->grade,
p->report.math,p->report.english,p->report.chinese,p->report.chemistry,p->report.physics);
p=p->next;
}
}
structstudent*makeStudentMessageForDebug(structstudent*header){
structstudentmessage[]={
{
12345670,"赵大","男",20101010,"物理1班",10,20,30,40,30,NULL
},
{
12345671,"钱二","男",20101011,"物理2班",9,21,32,12,55,NULL
},
{
12345672,"孙三","女",20101012,"物理3班",5,20,30,40,50,NULL
},
{
12345673,"李四","男",20101210,"物理1班",100,3,30,40,60,NULL
},
{
12345674,"张五","男",20131010,"物理4班",10,20,8,40,50,NULL
},
};
intn=sizeof(message)/sizeof(structstudent);
inti;
structstudent*pre,*p;
header=pre=p=(structstudent*)malloc(LEN);
for(i=0;i<n;i++){
p->id=message[i].id;
memcpy(p->name,message[i].name,strlen(message[i].name)+1);
memcpy(p->sex,message[i].sex,strlen(message[i].sex)+1);
p->birthday=message[i].birthday;
memcpy(p->grade,message[i].grade,strlen(message[i].grade)+1);
p->report.math=message[i].report.math;
p->report.english=message[i].report.english;
p->report.chinese=message[i].report.chinese;
p->report.chemistry=message[i].report.chemistry;
p->report.physics=message[i].report.physics;
pre=p;
p=(structstudent*)malloc(LEN);
pre->next=p;
}
pre->next=NULL;
returnheader;
}
intmain()
{
longintid;
intindex=0;
intflag=0;
structstudent*header=NULL;
printInfo();
if(DEBUG){
header=makeStudentMessageForDebug(header);
}
while(flag==0){
//system("cls");
printf("请输入序号进行相应操作:");
scanf("%d",&index);
switch(index){
case0:
flag=1;
break;
case1:
printf("请录入学生信息(学号,名字,性别,生日,班级,数学成绩,英文成绩,语文成绩,化学成绩,物理成绩):");
header=insertOneStudentMessage(header);
break;
case2:
header=inputMoreStudentMessages(header);
break;
case3:
printf("请输入要查询的学生学号:");
scanf("%ld",&id);
queryById(header,id);
break;
case4:
header=sortByClass(header,0);
printAll(header);
break;
case5:
header=sortByClass(header,1);
printAll(header);
break;
case6:
header=sortByClass(header,2);
printAll(header);
break;
case7:
header=sortByClass(header,3);
printAll(header);
break;
case8:
header=sortByClass(header,4);
printAll(header);
break;
}
}
return0;
}
c语言程序,求答案和解题过程。
#include<stdio.h>
intadds(intx,inty);
voidmain()
{
inta=5,b=-1,c;
printf("调用函数add,将a,b的值作为参数进行传值,a,b值不变\n");
c=adds(a,b);
printf("运行函数add静态变量m初值0n初值3\n");
printf("执行n*=++m;m先++再取值运算,n=3\n");
printf("执行m=n%x+y++;y先取值运算再++m=3%5-1,m=2,返回打印m的值打印“2,”\n");
printf("再次调用函数add传参值不变,静态变量值保留,m初值2n初值3\n");
printf("执行n*=++m;m先++再取值运算,n=9\n");
printf("执行m=n%x+y++;y先取值运算再++m=9%5-1,m=3,返回打印m的值打印“3”\n");
printf("所以最终打印:\n");
printf("%d,",c);
c=adds(a,b);printf("%d\n",c);
}
intadds(intx,inty)
{
staticintm=0,n=3;
n*=++m;
m=n%x+y++;
return(m);
}
感谢您花时间阅读本文!我们希望通过对c语言答案的问题进行探讨,为您提供了一些有用的见解和解决方案。如果您需要更多帮助或者有其他疑问,请不要犹豫与我们联系。