首页编程c语言答案,c语言题,急求大神给我答案

c语言答案,c语言题,急求大神给我答案

编程之家2023-11-0674次浏览

大家好,今天来为大家分享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

c语言答案,c语言题,急求大神给我答案

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

c语言答案,c语言题,急求大神给我答案

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语言答案的问题进行探讨,为您提供了一些有用的见解和解决方案。如果您需要更多帮助或者有其他疑问,请不要犹豫与我们联系。

void(0) (((void)0)是啥意思)snackbar(snackbar是什么意思)