C语言开发入门教程习题答案.docx
《C语言开发入门教程习题答案.docx》由会员分享,可在线阅读,更多相关《C语言开发入门教程习题答案.docx(13页珍藏版)》请在冰豆网上搜索。
C语言开发入门教程习题答案
《C语言开发入门教程》—习题答案(总8页)
《C语言开发入门教程》习题答案
第1章初识C语言
一、填空题
1、汇编语言、高级语言
2、.c
3、
4、return
5、编译、链接
二、判断题
1、×2、√3、×4、√5、√
三、选择题
1、A2、B3、C、D4、D5、B
四、简答题
1、printf(),该函数用于输出一行信息,可以简单理解为向控制台输出文字或符号等。
printf()括号中的内容称为函数的参数,括号内可以看到输出的字符串“Hello,world\n”,其中“\n”表示换行操作,它不会输出到控制台。
2、注释是对程序的某个功能或者某行代码的解释说明,它只在C语言源文件中有效,在编译时会被编译器忽略。
五、编程题
1、参考答案
#include<>
voidmain()
{
printf("我喜欢C语言!
");
getchar();
f\n",s);f输出小数点后2位数字
getchar();
}
2、参考答案
#include<>
voidmain()
{
inta=3,b=4;
a=a^b;
b=b^a;
a=a^b;
printf("a=%d,b=%d\n",a,b);
getchar();
}
第3章流程控制
一、填空题
1、break
2、顺序
3、循环
4、if、if…else、if…elseif…else
5、3
二、判断题
1、×2、×3、√4、×5、√
三、选择题
1、C2、A、C3、B、C、D4、D5、A
四、简答题
1、跳转语句
break当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构。
当它出现在循环语句中,作用是跳出当前循环语句,执行后面的代码
continue在循环语句中,立即终止本次循环,并执行下一次循环。
goto语句可以跳出外层循环,需要对外层循环添加标记,然后使用goto语句可以跳转到标记的语句处。
2、for与while的相同之处都是完成一定次数的循环;其不同之处是:
whie一般用于未知次数的循环;for一般用于次数已知的循环;
两者声明变量的作用域不同,如果定义一个变量i,在while循环后i的值会存在,但for循环后,i的值不存在了;
五、编程题
1、参考答案
#include<>
voidmain()
{
intx=5;
if(x%2==0)
printf("%d为偶数\n",x);
else
printf("%d为奇数\n",x);
getchar();
}
2、参考答案
#include<>
voidmain()
{
inti,sum=0;
for(i=0;i<100;i++)f\n",CIR_S(r));
printf("圆的周长:
%.2f\n",CIR_L(r));
system("pause");
}
第9章结构体与共用体
一、填空题
1、构造
2、struct
3、union
4、
5、8
二、判断题
1、√2、√3、√4、×5、×
三、选择题
1、A2、AC3、C4、B5、D
四、简答题
1、结构体类型的定义方式如下所示:
struct结构体类型名称
{
数据类型成员名1;
数据类型成员名2;
…
数据类型成员名n;;
};
共用体在定义上与结构体类型十分相似,共用体类型的定义方式如下所示:
union共用体类型名称
{
数据类型成员名1;
数据类型成员名2;
……
数据类型成员名n;
};
2、在程序执行的任何特定时刻,结构体变量中的所有成员是同时驻留在该结构体变量所占用的内存空间中,而共用体变量仅有一个成员驻留在共用体变量所占用的内存空间中。
五、编程题
1、参考答案
#define_CRT_SECURE_NO_WARNINGS
#include<>
#include<>
core[j];
}
return(sum/n)/3;
}
core[0]+s[i].score[1]+s[i].score[2])>max)
{
max=s[i].score[0]+s[i].score[1]+s[i].score[2];
index=i;
}
}
printf("\n最高分学生信息:
\n");
printf("学号:
%d\n",(s+index)->ID);
printf("姓名:
%s\n",(s+index)->name);
printf("成绩:
%.2f,%.2f,%.2f\n",s[index].score[0],s[index].score[1],s[index].score[2]);
}
voidmain()
{
inti,j;
floatavg;
structSTsts[20];
D);
scanf("%s",sts[i].name);
for(j=0;j<3;j++)
scanf("%f",&sts[i].score[j]);f\n",_avg(sts,20));
_get(sts,20);
system("pause");
}
第10章数据结构
一、填空题
1、数据域指针域
2、指针
3、栈顶栈底
4、栈
5、入队出队
二、判断题
1、×2、×3、√4、×5、√
三、选择题
1、B2、B3、D4、D5、D
四、简单题
1、链表是一种常用的线性存储结构,它由一系列节点组成,节点可以在运行时动态生成,链表可以充分利用计算机内存空间,灵活实现内存动态管理。
2、栈是只允许在其一端进行插入和删除操作的线性表,它遵循的是后进先出原则;而队列是一个线性表,元素是从表的一端进行插入,从表的另一端进行删除,它遵循的是先进先出的原则。
五、编程题
1、参考答案
#define_CRT_SECURE_NO_WARNINGS
#include<>
#include<>
structNode//结点
{
intdata;
structNode*next;
};
structLink//链表头
{
intlength;
structNode*head;
};
void_init(structLink*L)//初始化
{
L->length=0;
L->head=NULL;
}
structLink*_create()
{
intret=1;
structLink*pHead=(structLink*)malloc(sizeof(structLink));
_init(pHead);//初始化链表
structNode*pNode=NULL,*temp=NULL;
printf("请输入数据,输入0结束\n");
while(ret)
{
scanf("%d",&ret);
if(ret)
{
pNode=(structNode*)malloc(sizeof(structNode));
pNode->data=ret;
pNode->next=NULL;
if(temp==NULL)
temp=pNode;
else
temp->next=pNode;
if(pHead->head==NULL)
pHead->head=temp;
temp=pNode;
pHead->length++;
}
else
break;
}
returnpHead;
}
//求链表的结点数
int_getcount(structLink*pHead)
{
intcount=0;
structNode*temp=pHead->head;
if(pHead==NULL)
return-1;
while(temp)
{
count++;
temp=temp->next;
}
returncount;
}
intmain()
{
intnum;
structLink*pHead=NULL;
//创建链表
pHead=_create();
printf("此链表有%d个结点\n",_getcount(pHead));
system("pause");
return0;
}
第11章文件操作
一、填空题
1、文本文件二进制文件
2、ASCII码
3、文件有关信息
4、流
5、fopen()fclose()
二、判断题
1、×2、×3、√4、√5、×
三、选择题
1、B2、A3、C4、C5、ABC
四、简答题
1、在C语言中,通过不同输入/输出设备之间的数据传输抽象表述为“流”,流实际上是一个字节序列,输入程序的字节序列被称为输入流,从程序输出的字节序列被称为输出流。
2、文件指针是一个指向文件有关信息的指针,这些信息包括文件名、状态和当前位置,它们保存在一个结构体变量中;文件位置指针是随机读写文件的关键,它可以实现对文件任何位置进行读取的操作。
3、C语言提供了一个fopen()函数的,该函数用于打开文件,其返回值类型为文件指针。
而fclose()函数用于关闭文件,其返回值为int类型
五、编程题
1、参考答案
#include<>
#include<>
intmain()
{
charbuf[1024];
FILE*fp1,*fp2;
fp1=fopen("C:
\\Users\\www\\Desktop\\","r");
if(fp1==NULL)
printf("文件打开失败\n");
fp2=fopen("C:
\\Users\\www\\Desktop\\","w");
if(fp2==NULL)
printf("文件打开失败\n");
while(!
feof(fp1))
{
fgets(buf,1024,fp1);
fputs(buf,fp2);
}
printf("拷贝完成\n");
fclose(fp1);
fclose(fp2);
system("pause");
return0;
}