Ⅰ c语言习题求解答
是整个系统的核心,也是整个系统最高的执行单位。它负责整个系统指令的执行,数学与逻辑的运算,数据的存储与传送,以及对内对外输入与输出的控制
Ⅱ C语言简单解答下答案,谢谢了
第一题:extern int x,y;引用全局变量中的x和y;(也就是在main()上面的int x,y;).如果主函数里没有num();这一句,那输出结果就是122,但是现在它调用了一次,num().所以答案就选c了;
第二题:正确来讲应该把fun()函数放在主函数上面,或者在主函数中声明,否则是出错的.fun()函数里有printf功能,当主函数执行到fun(j,6);时会输出一次,而fun()中有自己的定义int x=7,所以他输出的时候是i=7; j=6; x=7.而主函数中输出的时候是i=2; j=7; x=5,因为这个时候的x和fun函数中的x是不同的值,虽然名字一样,但在不同的作用域.
Ⅲ C语言题目解答~~
答案为:(OON,C)
首先,str是一个二维字符串数组,保存着"SUN""MOON""STAR""X"四个字符串,
*(str+1)表示str[1]的首地址,即"MOON"
*(str+1)+1后地址后移一位,打印的是"OON"
*(str+2)表示str[1]的首地址,即"STAR"
(*(st+2)+2)表示str[2][2]的地址,即'A'的地址,而*(*(st+2)+2)表示取出了这个字符,这个表达式的值就是'A'。而最后一个+2表示将"A"的ASCII码+2,即后移2位,就是'C'
Ⅳ c语言程序解答(在线等)
根据题意:
1、项目序号应为唯一值,用自增变量填充。
2、时间使用struct tm结构体(考虑如需时间运算,可使用相关函数)。
3、自定义结构类型SIINFO,分别实现插入链表和打印链表两个功能。
4、由于这个演示程序执行完就结束程序了。所以链表我没有写free释放内存,如你后期扩充代码,自己写释放(除程序结束,malloc申请内存不会自动释放)。
下面是演示代码:
#include <stdio.h>
#include <malloc.h>
#include <time.h>
#define MS 4//最大类型个数
#define MN 20//名称最大字符长度
char stypes[MS][10]={"速度型","力量型","耐力型","对抗型"};//项目类别,自行扩展,对应修改MS常量
typedef struct SportsItemInfo//定义一个体育项目结构类型
{
int id;//项目序号,从数据结构考虑,该项不能重复,应设为自增从0开始(实际开发,这个值由数据库分配)。
char name[MN+1];//项目名称
int stype;//项目类(对应stypes行下标)
int n;//参赛人数
struct tm sDate;//竞赛时间
struct SportsItemInfo *next;
}SIINFO;
SIINFO *insert2List(SIINFO *p_sHead);//插入新数据,首次插入参数传NULL。参数:链表头节点地址(不是首节点)。成功返回头节点,失败返回NULL。
void selectFList(SIINFO *p_sHead);//查询链表
int main()
{
char c;
SIINFO *p_sHead=NULL,*stemp=NULL;
printf("新增体育项目: ");
while(1)
{
stemp=insert2List(p_sHead);
if(!stemp)
{
printf("ERROR! ");
return 1;
}
p_sHead=stemp;
printf("是否继续输入(Y/N):");
c=0;
while(c!='Y' && c!='N')scanf("%c",&c);
if(c=='N') break;
}
selectFList(p_sHead);
return 0;
}
void selectFList(SIINFO *pht)
{
int i=0;
if(pht)
{
printf(" 输出链表信息: ");
while(pht->next)
{
printf("-----------项目%d--------- ",++i);
printf("项目序号:%d ",pht->next->id);
printf("项目名称:%s ",pht->next->name);
printf("项目类别:%s ",stypes[pht->next->stype]);
printf("参赛人数:%d ",pht->next->n);
printf("参赛时间:%04d-%02d-%02d %02d:%02d:%02d ",pht->next->sDate.tm_year+1900,pht->next->sDate.tm_mon+1,pht->next->sDate.tm_mday,pht->next->sDate.tm_hour,pht->next->sDate.tm_min,pht->next->sDate.tm_sec);
printf("-------------------------- ");
pht=pht->next;
}
}
}
SIINFO *insert2List(SIINFO *p_sHead)
{
static int x=0;
static SIINFO *p_sTail=NULL;
int i;
SIINFO *p_new=NULL;
if(!p_sHead){
p_sHead=(SIINFO*)malloc(sizeof(SIINFO));
if(!p_sHead)
return NULL;
p_sHead->next=NULL;
p_sTail=NULL;
}
p_new=(SIINFO*)malloc(sizeof(SIINFO));
if(!p_new)
return NULL;
p_new->next=NULL;
p_new->id=x++;
printf("-------------------------- ");
printf("项目名称:"),scanf("%s",p_new->name);
for(i=0,printf("项目类(");i<MS-1;printf("%d、%s,",i,stypes[i]),i++);
printf("%d、%s):",i,stypes[i]);
p_new->stype=-1;
while(p_new->stype<0 || p_new->stype>MS-1)scanf("%d",&p_new->stype);
printf("参赛人数:"),scanf("%d",&p_new->n);
printf("参赛时间(输入格式:年-月-日 时:分:秒):");
scanf("%d-%d-%d %d:%d:%d",&p_new->sDate.tm_year,&p_new->sDate.tm_mon,&p_new->sDate.tm_mday,&p_new->sDate.tm_hour,&p_new->sDate.tm_min,&p_new->sDate.tm_sec);
p_new->sDate.tm_mon--;//tm结构的月份是从0开始对应1月
p_new->sDate.tm_year=p_new->sDate.tm_year-1900;//tm结构的年份是实际年份-1900
if(!p_sHead->next)
p_sHead->next=p_new;
else
p_sTail->next=p_new;
p_sTail=p_new;
printf("-------------------------- ");
return p_sHead;
}
Ⅳ c语言试题解答
字符也包括数字啊,所以当然%c是输出1啦,至于49,你可以看看ASCII,1对对应的ASCII码是49。
Ⅵ c语言简单题目求解答及解析
1、s[0].a = 1,s[0].b = 2;s[0].c = 3;s[0].s = 0;s[1].a = 4;s[0].b = 5;s[0].c = 6;s[0].s = 0;所以t = s[0].a + s[1].b = 1 + 5 = 6
2、float x;占用4个字节(因系统的不同而不同),char c[6];占6个字节,故联合体aa的长度为6,那么变量Z占用6个字节。
int num;占用4个字节(因系统的不同而不同),float w[5];占用5×4 = 20个字节,double ave;占用8个字节(因系统的不同而不同),所以结构体st占用的字节数为4 + 20 + 8 = 32个字节,即变量W占用332个字节空间。
3、PER是类型名,就像char int double float 一样可以声明变量及同类型指针,其声明的变量可以作为函数的哑元或实元,当然也可以作为函数的返回值类型。
4、可以这样引用data的成员
t->x = 3.6,
scanf("%f",&t->y);
Ⅶ c语言题解释
第一道题:第一行,是你定义下面程序多要用到的变量,int是整型,也就是说只能是整数,比如2;float类型,就是小数,比如2.3等,下面的scanf是让你输入数值的意思,括号后面有三个字母变量,也就是说你要输入三个数字,分别赋给a,b,c;printf是输出你刚才的数值。解答完毕。
第二道题意思差不多,double类型也是小数类型,精确度比float类型要高。后面c=b=a=40/3,"/"是除的意思,把商分别赋给a,b,c。这时a,b,c的值就都是一样的了。
你这样问是不理智的,你可以找C语言的书籍来学。都很简单明了,实在不行,可以报这样的学习班。很多的。
Ⅷ c语言的题,求大神解答
解:1、A项错误:有些不可见字符可放入缓冲区,例如:回车、空格。
B项错误:有些输入函数有缓冲区,有些没有,例如:getchar() 有缓冲区,getch() 无缓冲区,getche() 无缓冲区。
C项错误:缓冲区不需要定义。
所以选D。
2、getchar()函数有缓冲区。getchar函数的返回值是用户输入的字符的ASCII码,若文件结尾则返回-1(EOF),且将用户输入的字符回显到屏幕。如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取。也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完后,才等待用户按键。
该程序调用getchar()函数三次,所以getchar()函数依次读取前三个输入的数据,空格也算,所以选B。
3、回车是用\n表示,且((c=getchar())!='\n')注意这里的圆括号不能丢,因为!=的优先级比=高,如果去掉了外面的括号就等价于 c = (getchar()!='\n')。所以选C。