本篇文章给大家谈谈c语言程序设计答案,以及国家开放大学c语言程序设计答案对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、c语言程序设计(何钦铭 颜晖 第三版)课后习题答案
- 2、C语言程序设计试题 求标准答案 都是多选
- 3、c语言程序设计答案
- 4、求c语言程序设计答案
- 5、求29.30.31答案和解释 c语言程序设计
- 6、求C语言程序设计的答案
c语言程序设计(何钦铭 颜晖 第三版)课后习题答案
习 题 1
1.1 填空题
1.函数
2.主函数main();主函数main()
3.主函数main()
4.函数首部;函数体
5.{;}
6.顺序结构;选择结构;循环结构
7..c;.obj;.exe
1.2 思考题
1.答:结构化程序设计是指,为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。顺序结构,选择结构,循环结构
2.答:算法是对具体问题求解步骤的一
种描述。计算机算法的表达工具通常采用以下几种方法:①用自然语言表示算法;②用流程图表示算法;③用伪代码表示算法;④用程序设计语言表示算法。
3.略
4.略
5.略
1.3 编程题
1.答:
#include "stdio.h"
main()
{ float a=10, b=20, h=5, s;
s=(a+b)*h/2;
printf("s=%f " , s );
}
C语言程序设计试题 求标准答案 都是多选
1、答案:A
(单引号括起来的都是字符,而且一对单引号最多对应一个字符,\反斜杠是转义字符的开始,\72是ASCII码对应的字母H。也就是把H这个字母存到了变量char a中。就一个字符H。)
2、ACDE
解析:
int a=3,b=4,c=5;,
A、ab
B、a<=b
C、(a||b)>c
D、a<=(b||c)
E、!((a<b)!c||b)
优先级由大到小:() ! ||
A选项,34错误,逻辑值0。
B选项,3=4正确,逻辑值1。
C选项,(3||4)5,(3||4)"或"逻辑运算符两边只要有一个非0的整个值就是1,15错,逻辑值0。
D选项,3=(4||5)错误,逻辑值0。
E选项,!((34)!5||4),先(34)逻辑值1,!5逻辑值0,10是0,0||4是1,!1是0,所以逻辑值0。
3、AC。
解析:A可以,B答案b不能被赋值(自左向右,计算||左侧就已经是1了右边就不用再计算了整个表达式无论右边如何整个逻辑值必定是1,计算机也就不会计算右边了)C可以(因为两边都必须计算才能得出最后的逻辑值答案),D不可以a不能被赋值(左边就一个a,构不成赋值,可能存放一个随机值,右边可以被赋值)。
4、ABCD。
外部函数几乎可以被所有函数调用。只要开头#include” "引入。
c语言程序设计答案
只说一下思路
实在写不出来再追问
最好能自己解决
第一题:
就是一个杨辉三角问题
用双循环
外循环是行数(用
i
表示)
从0到n
(n自己输入)
内循环是列数(用
j
表示)
从0到2*i-1
然后就是赋
值
很多种方式
比如你定义一个
字符变量
C
给它赋值为A
然后每次都用C给数组赋值
然后让C加1
方法很多
(数组是字符二维数组,
用
之前要初始化一下
给数组都赋值为
空格)
第二题:
定义两个二维数组
一个一维数组
按照题目要求
先把每个同学的成绩和名字分别存放到两个二维数组里面
同样是双循环
然后再用双循环
把每个同学成绩加起来放到一维数组里面
然后接下来就是对一位数组内容进行排序
排序过程中
也要将名字的那个二维数
组同样排序
因为一维数组中的总分顺序和二维数组中的姓名顺序是一样的
比如
要将第二个同学的成绩和第五个同学的成绩交换
那么就要
将总分交换
再将姓名交换
不然分就不对人了
第三题:
题目没明白什么意思
第四题:
用循环从第一个元素判断到最后一个元素
定义4个变量存储
数字
大写
小写
空格出现的次数
查一下ASCII码
数字好像是48-57
大写字母是
65-90
小写是
97-122
判断元素内容的ASCII在哪个范围
哪个变量就加1
求c语言程序设计答案
#include
fstream
#include
string.h
#include
iostream
#include
conio.h//用getch();
using
namespace
std;
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Student类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
class
Student
{
public:
char
name[20];
char
Class[20];
char
Id[20];
int
Cnum;
//C课程得分
int
Mnum;
//数学课程得分
int
Enum;
//英语课程得分
int
Gnum;
//体育
int
sum;
//总分
int
ave;
//平均分
Student
*
Next;
void
Input()
{
cout"\t\t请输入学生的姓名:";
cinname;
cout"\t\t请输入学生的班级:";
cinClass;
cout"\t\t请输入学生的学号:";
cinId;
cout"\t\t请输入C++的成绩:";
cinCnum;
cout"\t\t请输入数学课程的成绩:";
cinMnum;
cout"\t\t请输入英语课程的成绩:";
cinEnum;
cout"\t\t请输入日语的成绩:";
cinGnum;
sum=Cnum+Mnum+Enum+Gnum;
ave=(Cnum+Mnum+Enum+Gnum)/4;
}
void
ReadFile(istream
in)
{
innameClassIdCnumMnumEnumGnumavesum;
}
void
Show()
{
cout"姓名:"nameendl"班级:"Classendl"学号:"Idendl"C++:"Cnumendl
"数学:"Mnumendl"外语:"Enumendl"日语:"Gnumendl"平均成绩:"aveendl"总成绩:"sumendlendlendl;
}
};
//﹌﹌﹌﹌﹌﹌﹌﹌﹌Studentmassage类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
class
Studentmassage
{
public:
Studentmassage();
~Studentmassage();
void
ShowMenu();
void
Find();
void
Save();
void
ModifyItem();
void
RemoveItem();
void
Swap(Student
*,Student
*);
void
Sort();
int
ListCount();
void
Display()
{
for(Student
*
p=Head-Next;p!=End;p=p-Next)
p-Show();
cout"输入任意字符!继续……";
getch();
}
void
AddItem()
{
End-Input();
End-Next=new
Student;
End=End-Next;
cout"添加成功!"endl;
cout"输入任意字符!继续……";
getch();
}
private:
Student
*
Head,*
End;
ifstream
in;
ofstream
out;
Student
*FindItem(char
*
name)
{
for(Student
*
p=Head;p-Next!=End;p=p-Next)
if(!strcmp(p-Next-name,name))return
p;
return
NULL;
}
Student
*FindID(char
*
Id)
{
for(Student
*
p=Head;p-Next!=End;p=p-Next)
if(!strcmp(p-Next-Id,Id))return
p;
return
NULL;
}
Student
*FindCLASS(char
*
Class)
{
for(Student
*
p=Head;p-Next!=End;p=p-Next)
if(!strcmp(p-Next-Class,Class))return
p;
return
NULL;
}
}Grade;
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌构造函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
Studentmassage::Studentmassage()
{
Head=new
Student;
Head-Next=new
Student;
End=Head-Next;
in.open("sort.txt");
if(!in)
cout"这是一个新系统,无学生信息。请先输入。"endl;
else
{
while(!in.eof())
{
End-ReadFile(in);
if(End-name[0]=='\0')break;
End-Next=new
Student;
End=End-Next;
}
in.close();
cout"\t\t读取学生信息成功!"endl;
}
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析构函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
Studentmassage::~Studentmassage()
{
Save();
for(Student
*
temp;Head-Next!=End;)
{
temp=Head-Next;
Head-Next=Head-Next-Next;
delete
temp;
}
delete
Head,End;
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜单﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void
Studentmassage::ShowMenu()
{
cout"〓〓〓〓〓〓〓〓〓〓
☆
学
生
成
绩
管
理
系
统
☆
〓〓〓〓〓〓〓〓〓〓"endl;
cout"〓〓〓〓〓〓〓★★★★★
★★★★★★★
★★★★★〓〓〓〓〓〓〓"endl;
cout"〓〓〓〓〓〓〓〓〓★
☆
1.增加学生成绩
☆
★〓〓〓〓〓〓〓〓〓"endl;
cout"〓〓〓〓〓〓〓〓〓★
☆
2.显示学生成绩
☆
★〓〓〓〓〓〓〓〓〓"endl;
cout"〓〓〓〓〓〓〓〓〓★
☆
3.排序统计成绩
☆
★〓〓〓〓〓〓〓〓〓"endl;
cout"〓〓〓〓〓〓〓〓〓★
☆
4.查找学生成绩
☆
★〓〓〓〓〓〓〓〓〓"endl;
cout"〓〓〓〓〓〓〓〓〓★
☆
5.删除学生成绩
☆
★〓〓〓〓〓〓〓〓〓"endl;
cout"〓〓〓〓〓〓〓〓〓★
☆
6.修改学生信息
☆
★〓〓〓〓〓〓〓〓〓"endl;
cout"〓〓〓〓〓〓〓〓〓★
☆
0.安全退出系统
☆
★〓〓〓〓〓〓〓〓〓"endl;
cout"\n\t\t\n\t\t请选择:";
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void
Studentmassage::Find()
{
char
name[20]
,Id[10],Class[20];
int
x;
Student
*
p=NULL;
cout"\n\t\t*********************************\n";
cout"\t\t※
1.按学生的姓名查找\n\t\t※
2.按学生学号查找\n\t\t※
3.按学生班级查找";
cout"\n\t\t*********************************\n请选择:";
cinx;
switch(x)
{
case
1:{cout"\t\t请输入要查找的学生的姓名:";cinname;
if(p=FindItem(name))
{
p-Next-Show();
cout"输入任意字符!继续……";
getch();
}
else
{
cout"\t\t没有找到该姓名的学生!"'\n'endl;
cout"输入任意字符!继续……";
getch();
}
}break;
case
2:
{
cout"\t\t请输入要查找的学生的学号:";cinId;
if(p=FindID(Id))
{
p-Next-Show();
cout"输入任意字符!继续……";
getch();
}
else
{
cout"\t\t没有找到该学号的学生!"'\n'endl;
cout"输入任意字符!继续……";
getch();
}
}break;
case
3:{cout"\t\t请输入要查找的学生的班级:";cinClass;
if(p=FindCLASS(Class))
{
p-Next-Show();
cout"输入任意字符!继续……";
getch();
}
else
{
cout"\t\t没有找到该班级的学生!"'\n'endl;
cout"输入任意字符!继续……";
getch();
}
}break;
}
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌修改信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void
Studentmassage::ModifyItem()
//修改信息
{
char
ID[20];
Student
*
p=NULL;
cout"\t\t请输入要修改的人的学号:";cinID;
if(p=FindID(ID))
{
cout"\t\t已找到学生的信息,请输入新的信息!"endl;
p-Next-Input();
cout"修改成功!"endl;
cout"输入任意字符!继续……";
getch();
}
else
{
cout"\t\t没有找到!"endl;
cout"输入任意字符!继续……";
getch();
}
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌删除信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void
Studentmassage::RemoveItem()
//
删除信息
{
char
ID[20];
Student
*
p=NULL,*temp=NULL;
cout"\t\t请输入要删除的学生的学号:";cinID;
if(p=FindID(ID))
{
temp=p-Next;
p-Next=p-Next-Next;
delete
temp;
cout"\t\t删除成功!"endl;
cout"输入任意字符!继续……";
getch();
}
else
{
cout"\t\t没有找到!"endl;
cout"输入任意字符!继续……";
getch();
}
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void
Studentmassage::Swap(Student
*p1,
Student
*p2)
{
Student
*temp=new
Student;
strcpy(temp-name,p1-name);
strcpy(temp-Id,p1-Id);
temp-Cnum=p1-Cnum;
temp-Mnum=p1-Mnum;
temp-Enum=p1-Enum;
temp-sum=p1-sum;
strcpy(p1-name,p2-name);
strcpy(p1-Id,p2-Id);
p1-Cnum=p2-Cnum;
p1-Mnum=p2-Mnum;
p1-Enum=p2-Enum;
p1-sum=p2-sum;
strcpy(p2-name,temp-name);
strcpy(p2-Id,temp-Id);
p2-Cnum=temp-Cnum;
p2-Mnum=temp-Mnum;
p2-Enum=temp-Enum;
p2-sum=temp-sum;
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
int
Studentmassage::ListCount()//统计当前的记录总数
{
if(!
Head)
return
0;
int
n=0;
for(Student
*
p=Head-Next;p!=End;p=p-Next)
{
n++;
}
return
n;
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void
Studentmassage::Sort()//对当前学生进行排序
{
cout
"Sorting..."endl;
Student
*p=NULL,*p1=NULL,*k=NULL;
int
n=Studentmassage::ListCount();
if(n2)
return;
for(p=Head-Next;p!=End;p=p-Next)
for(k=p-Next;k!=End;k=k-Next)
{
if(p-sumk-sum)
{
Studentmassage::Swap(p,k);
}
}
cout
"排序完成!"endl;
getch();
return;
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌保存函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void
Studentmassage::Save()
{
out.open("sort.txt");
for(Student
*p=Head-Next;p!=End;p=p-Next)
outp-name"\t"p-Class"\t"p-Id"\t"
p-Cnum"\t"p-Mnum"\t"p-Enum"\t"p-Gnum"\t"p-ave"\t"p-sum'\n';
out.close();
}
void
code()
//密码
{
char
s1[20]="123",s2[20];
cout"请输入密码:";
while(cins2)
{
if(!strcmp(s1,s2))
{
Grade.ModifyItem();break;
}
else
cout"你输入的密码不正确,请重新输入:";
}
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌主函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
int
main()
{
int
x,i=0;
bool
quit=false;
cout"\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§"endl;
for(i=0;i3;i++)
cout"\t\t◎\t\t\t\t\t\t
◎"endl;
cout"\t\t◎★★★★【
欢迎进入学生成绩管理系统
】★★★★◎"endl;
for(i=0;i3;i++)
cout"\t\t◎\t\t\t\t\t\t
◎"endl;
cout"\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§\n"endl;;
cout"请按任意键开始……";
getch();
while(!quit)
{
system("cls");
Grade.ShowMenu();
cinx;
switch(x)
{
case
0:cout"★★★★感谢您的使用★★★★"endl;quit=true;break;
case
1:Grade.AddItem();break;
case
2:Grade.Display();break;
case
3:Grade.Sort();break;
case
4:Grade.Find();break;
case
5:Grade.RemoveItem();break;
case
6:code();break;
}
}
return
0;
}
我稍微改了下,应该可以用~
额~~你们一定要C编吗~C++不可以嘛?
求29.30.31答案和解释 c语言程序设计
29、数组的下标值必须是整数,且不能越界,数组a的下标值范围是0--9
A
*(a+i)
等价于
a[i]
B
a[p-a+i]
等价于
a[i]
因为
p=a
所以
p-a+i=i
C
p+i
是数组中下标值为i的元素的地址
D
*(a[i])
等价于
a[i]
所以
本题答案是
C
30、strcpy(s1,s2)字符串赋值函数,把串s2放在s1的位置上,所以s1必须有足够的存储空间来存放串s2
A
st1
是一维数组可以存放字符串teacher1
B
st4
是一个指针变量,但是该指针指向一个连续的存储空间
teacher1
C
st3是指针变量,但是该指针没有指向任何存储空间,所以不能把串teacher1放在st3
D
st1
是一维数组可以存放字符串teacher1
所以
本题答案
是
C
31、p
q
是指针变量,存放的是n的地址
A
p=q
p
q
指针类型相同
可以直接赋值
B
*p=*q
也可以
//
p=q=n
则
*p=*q=n
C
n=*p
原理同
B项
D
p是指针,应该存放n的地址,即p=n
所以本题答案是:
D
求C语言程序设计的答案
2分,共60分)下列各题A、B、C、D四个选项中,只有一个选项是正确的。请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
1.微型计算机的运算器、控制器及内存储器组合在一起,称之为()(本题分值:1分)
D
A.ALU
B.CPU
C.MPU
D.主机
2.下列存储器中,存取速度最快的是()(本题分值:1分)
D
A.软盘
B.硬盘
C.光盘
D.内存
3.系统软件中最重要的是()(本题分值:1分)
A
A.操作系统
B.语言处理程序
C.工具软件
D.数据库管理系统
4、CPU处理的数据基本单位为字,一个字的字长()(本题分值:1分)
D
A.为8个二进制位
B.为16个二进制位
C.为32个二进制位
D.与CPU芯片的型号有关
5.打印当前屏幕内容应使用的控制键是()(本题分值:1分)
D
A.Scroll-Lock
B.Num-Lock
C.PgDn
D.PrtSc(Print Screen)
6.能将高级语言源程序转换成目标程序的是()(本题分值:1分)
C
A.调试程序
B.解释程序
C.编译程序
D.编辑程序
7.二进制数1110111.11转换成十进制数是()(本题分值:1分)
B
A.119.375
B.119.75
C.119.125
D.119.3
8.十六进制数FF.1转换成十进制数是()(本题分值:1分)
A
A.255.0625
B.255.125
C.127.0625
D.127.125
9.中国国家计算机网络设施是()(本题分值:1分)
A
A.NCFC
B.CERNET
C.ISDN
D.Internet
10.控制键^C的功能为()(本题分值:1分)
A
A.终止当前操作
B.系统复位
C.暂停标准输出设备的输出
D.结束命令行
11.COMMAND.COM为命令处理程序,DOS系统启动后,它()(本题分值:1分)
B
A.驻留在外存,需要时装入内存
B.常驻内存,包含所有内部命令
C.不能处理外部命令
D.不能处理后缀为.EXE的可执行文件
12.为了将所有扩展名为.PAS的文件改成扩展名为.P,应使用命令()(本题分值:1分)
C
A.REN *.PAS .?AS
B.REN PAS P
C.REN *.PAS *.P
D.REN *.PAS *.P??
13.设当前盘中文件XY.C的路径为\A\B\XU,当前目录为\A\B。为了查看文件XY.C的内容,应使用命令()(本题分值:1分)
A
A.TYPE XU\XY.C
B.TYPE \XU\XY.C
C.DIR XU\XY.C
D.DIR \A\B\XU\XY.C
14.要将提示符改成当前盘当前目录后加一个大于号“>”,应使用命令()(本题分值:1分)
B
A.PROMPT
B.PROMPT $ p $ g
C.PROMPT $ $
D.PROMPT C\>
15.在多媒体计算机系统中,CD-ROM属于()(本题分值:1分)
D
A.感觉媒体
B.表示媒体
C.表现媒体
D.存储媒体
16.设当前盘为C盘,将A盘根目录下的文件目录信息存放到当前盘当前目录下的文件AB中,应使用命令()(本题分值:1分)
C
A.TYPE A:\>AB
B.DIR >AB
C.DIR A:\>AB
D.DIR \>AB
17.在位运算中,操作数每右移一位,其结果相当于()(本题分值:1分)
B
A.操作数乘以2
B.操作数除以2
C.操作数除以16
D.操作数乘以16
18.在当前盘当前目录下有一个文件A.BAT,其内容为
CD \
MD \XYZ\AB\B\C
CD XYZ\AB\B
在正确执行上述文件后,接着执行下列命令时,不会发生错误的是()(本题分值:1分)
C
A.MD C
B.RD \XYZ
C.RD C
D.RD B
19.下列命令组中两个DOS命令互相等价的是()(本题分值:1分)
D
A.TYPE AB.TXT与DIR AB.TXT
B.DISKCOMP A:B:与COMP A:.* B:*.
C.TYPE AB.TXT>>XY.TXT与COPY AB.TXT XY.TXT
D.TYPE AB.TXT>XY.TXT与COPY AB.TXT XY.TXT
20.设A盘为启动盘,其目录结构为
根目录
DOS子目录 COMAND.COM
USER子目录 AUTOEXEC.BAT
其文件AUTOEXEC.BAT的内容如下:
MD \XYZ
CD \DOS\USER
则由A盘启动成功后,A盘的当前目录是()(本题分值:2分)
C
A.\DOS\USER
B.\XYZ
C.根目录
D.\DOS
21.C语言提供的合法关键字是()(本题分值:1分)
C
A.switch
B.cher
C.case
D.default
22.在C语言中,合法的字符常量是()(本题分值:1分)
B
A.′\084′
B.′\x43′
C.′ab′
D.′\0′
23.若已定义x和y为double类型,则表达式: x=1,y=x+3/2的值是()(本题分值:1分)
C
A.1
B.2
C.2.0
D.2.5
24.合法的数组定义是()(本题分值:1分)
D
A.int a[]=〃string〃;
B.int a[5]=;
C.char a=〃string〃;
D.char a[]=;
25.设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是()(本题分值:1分)
A
A.10<a<15
B.a==11||a==12||a==13||a==14
C.a>10&&a<15
D.!(a<=10)&&!(a>=15)
26.若t为double类型,表达式t=1,t+5,t++的值是()(本题分值:1分)
C
A.1
B.6.0
C.2.0
D.1.0
27.若有定义和语句:
char s[10];s=〃abcd〃;printf(〃%s\n〃,s);
则结果是(以下μ代表空格)()(本题分值:1分)
D
A.输出abcd
B.输出a
C.输出abcdμμμμμ
D.编译不通过
28.若有定义和语句:
int **pp,*p,a=10,b=20;
pp=&p;p=&a;p=&b;printf(〃%d,%d\n〃,*p,**pp);
则输出结果是()(本题分值:1分)
D
A.10,10
B.10,20
C.20,10
D.20,20
29.若有以下定义和语句:
int u=010,v=0x10,w=10;
printf(〃%d,%d,%d\n〃,u,v,w);
则输出结果是()(本题分值:1分)
A
A.8,16,10
B.10,10,10
C.8,8,10
D.8,10,10
30.若有以下定义和语句:
char c1=′b′,c2=′e′;
printf(〃%d,%c\n〃,c2-c1,c2-′a′+′A′);
则输出结果是()(本题分值:1分)
B
A.2,M
B.3,E
C.2,E
D.输出项与对应的格式控制不一致,输出结果不确定
31.若有定义:int a[3][4];,()不能表示数组元素a[1][1]。(本题分值:1分)
D
A.*(a[1]+1)
B.*(a[1][1])
C.(*(a+1))[1]
D.*(a+5)
32.若i、j已定义为int型,则以下程序段中内循环体的总的执行次数是()(本题分值:1分)
for(i=5;i>0;i--)
for(j=0;j<4;j++)
A
A.20
B.24
C.25
D.30
33.若有以下定义和语句:
char *s1=〃12345〃,*s2=〃1234〃;
printf(〃%d\n〃,strlen(strcpy(s1,s2)));
则输出结果是()(本题分值:1分)
A
A.4
B.5
C.9
D.10
34.若有以下定义和语句:
int a[10]=,*p=a;
则不能表示a数组元素的表达式是()(本题分值:1分)
B
A.*p
B.a[10]
C.*a
D.a[p-a]
35.下面程序的输出结果是()(本题分值:2分)
C
A.k=3 a=2 b=3
B.k=3 a=3 b=2
C.k=2 a=3 b=2
D.k=2 a=2 b=3
36.下面程序的输出结果是()(本题分值:1分)
main()
{unsigned a=32768;
printf(〃a=%d\n〃,a);}
C
A.a=32768
B.a=32767
C.a=-32768
D.a=-1
37.执行下面语句后的输出结果为()(本题分值:1分)
int i=-1;
if(i<=0) printf(〃****\n〃);
else printf(〃%%%%\n〃)
D
A.****
B.%%%%
C.%%%%c
D.有语法错误,不能正确执行
38.对于条件表达式(M)?(a++):(a--),其中的表达式M等价于()(本题分值:1分)
C
A.M==0
B.M==1
C.M!=0
D.M!=1
39.下述程序段的输出结果是()(本题分值:1分)
int x=10;
int7nbspy=x++;
printf(〃%d,%d〃,(x++,y),y++);
A
A.11,10
B.11,11
C.10,10
D.10,11
40.若有以下的定义:
int a[]=,*p=a
则值为3的表达式是()(本题分值:1分)
A
A.p+=2,*(p++)
B.p+=2,*++p
C.p+=3,*p++
D.p+=2,++*p
41.假定所有变量均已正确说明,下列是程序段运行后x的值是()(本题分值:2分)
a=b=c=0;x=35;
if(!a) x--;
else if(b);
if(c) x=3;
else x=4;
B
A.34
B.4
C.35
D.3
42.在以下一组运算中,优先级最高的运算符是()(本题分值:2分)
C
A.<=
B.=
C.%
D.&&
43.若有以下定义和语句:
int w[2][3],(*pw)[3];pw=w;
则对w数组元素的非法引用是()(本题分值:2分)
A
A.*(w[0]+2)
B.*(pw+1)[2]
C.pw[0][0]
D.*(pw[1]+2)
44.若有以下程序片段: char str[ ]=〃ab\n\012\\\\〃; printf(〃%d〃,strlen(str));
上面程序片段的输出结果是()(本题分值:2分)
C
A.3
B.4
C.6
D.12
45.函数调用:strcat(strcpy(str1,str2),str3)的功能是()(本题分值:2分)
C
A.将串str1复制到串str2中后再连接到串str3之后
B.将串str1连接到串str2之后再复制到串str3之后
C.将串str2复制到串str1中后再将串str3连接到串str1之后
D.将串str2连接到串str1之后再将串str1复制到串str3中
46.以下对C语言函数的有关描述中,正确的是()(本题分值:2分)
A
A.在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B.C函数既可以嵌套定义又可以递归调用
C.函数必须有返回值,否则不能使用函数
D.C程序中有调用关系的所有函数必须放在同一个源程序文件中
47.以下叙述中不正确的是()(本题分值:2分)
C
A.在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值
B.在C中,在调用函数时,实参和对应形参在类型上只需赋值兼容
C.在C中,外部变量的隐含类别是自动存储类别
D.在C中,函数形参可以说明为register变量
48.设有以下定义或语句,则输出的结果是(用small模式编译,指针变量占2个字节)()(本题分值:2分)
struct date
{long *cat;
struct date *next;
double dog;
}too;
printf(〃%d〃,sizeof(too));
D
A.20
B.16
C.14
D.12
49.设有定义:struct sk
data,*p;
若有p=&data;,则对data中的a域的正确引用是()(本题分值:2分)
B
A.(*p).data.a
B.(*p).a
C.p->data.a
D.p.data.a
50.以下对枚举类型名的定义中正确的是()(本题分值:2分)
B
A.enum a=;
B.enum a;
C.enum a=;
D.enum a;
二、填空题(每空2分,共40分)请将答案分别写在答题卡中序号至的横线上,答在试卷上不得分。
1、与十进制数101等值的二进制数为。(本题分值:2分)
1100101
2、DOS命令分为内部命令与外部命令,XCOPY命令属于命令。(本题分值:2分)
外部
3、设当前盘为A盘,当前系统提示符为“”,在不改变当前盘的情况下,显示C盘的当前目录路径,应使用命令。 (本题分值:2分)
CD C:
4、自动批处理文件名必须是。(本题分值:2分)
AUTOEXEC.BAT
5、设在当前盘当前目录下有两个文件W.TXT与P.TXT,现要将文件P.TXT连接到文件W.TXT的后面,若使用COPY命令,则完整的命令为。(本题分值:2分)
COPY W.TXT+P.TXT W.TXT
6、表示条件10<x<100或x<0的C语言表达式是。(本题分值:2分)
(x>10 x<100)||x<0
或(10<xx<100)||x<0
或x<0 ||(x>10x<100)
或0>x ||(10<xx<100)
7、以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最笾怠G胩羁铡?br #define N 3
#define M 4
void LineMax(int x[N][M])
{ int i,j,p;
for(i=0;i<N;i++)
{p=0;
for(j=1;j<M;j++)
if(x[i][p]<x[i][j]) ;
printf(〃The max value in line is %d\n〃,);
}
}
main()
;
;
}
(本题分值:6分)
p=j
x[i][p]
LineMax(x)
8、以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。
main()
{float x[1000],sum=0.0,ave,a;
int n=0,i;
printf(〃Enter mark:\n〃);scanf(〃%f〃,a);
while(a>= 0.0 n<1000)
{sum+=;x[n]=;
n++; scanf(〃%f〃,a);
}
ave= ;
printf(〃Output:\n〃);
printf(〃ave=%f\n〃,ave);
for(i=0;i<n;i++)
if() printf(〃%f\n〃,x[i]);
}
(本题分值:8分)
a
a
sum/n或sum/(float)n或sum/(double)n
x[i]<ave或!(x[i]>=ave)或ave>x[i]
9、执行以下程序,输入-10的结果是,输入5的结果是,输入10的结果是,输入30的结果是。
(本题分值:8分)
5
10
5
10、以下程序的功能是。
main()
;
int sum=0,i;
for(i=0;i<10;i++)
if(num[i]>0)
sum=num[i]+sum;
printf(〃sum=%6d〃,sum);
}
(本题分值:2分)
计算数组num中大于零的数据之和
11、以下程序可以把从键盘上输入十进制数(long型)以二到十六进制数的形式输出,请填空。
#include
main()
{char
b[16]=;
int c[64],d,i=0,base;
long n;
printf(〃Enter a number:\n〃); scanf(〃%1d〃,n);
printf(〃Enter new base:\n〃); scanf(〃%1d〃,base);
do
{c[i]=;
i++;
n=n/base;
}while(n!=0);
printf(〃The result is:\n〃);
for(--i;i>=0;--i)
{?d=c[i];
printf(〃%c〃,b);
}
}
(本题分值:4分)
n%base
[d]
发表评论