程序设计基础期末试题及答案,大学c语言期末考试题库
各位老铁们,大家好,今天由我来为大家分享程序设计基础期末试题及答案,以及大学c语言期末考试题库的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
09年4月自考计算机基础与程序设计试题及答案
全国2009年4月自考计算机基础与程序设计试题
课程代码:02275
一、单项选择题(本大题共20小题,每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.衡量存储器的基本单位是()
A. bit B. byte
C. KB D. word
2.Windows操作系统是()
A.单用户、单任务 B.单用户、多任务
C.多用户、单任务 D.多用户、多任务
3.组成微机主存储器的是()
A. CD—ROM和RAM B.硬盘和RAM
C.硬盘和CD—ROM D. ROM和RAM
4.下列数据中最大数是()
A.(1010010)2 B.(123.4)8
C.(84.5)10 D.(55)16
5.在Turbo C 2.0中,运行一个程序后,要查看运行结果可按键()
A. Alt+F1 B. Alt+F5
C. Alt+F9 D. Alt+F10
6.下列是合法C语言常量的是()
A. e B. 7E4.0
C. E4 D.-9.13E-30
7.设有int a=3,b=-4,c=5;表达式(a<b)?a:b&&c<0的值是()
A. 0 B. 1
C. 3 D. 4
8.以指数形式输出实型数的格式说明符是()
A.%u B.%x
C.%f D.%e
9.下列程序的输出结果是()
main()
{ int x=5,y;
if(x<0)y=-1;
if(x==0)y=0;
y=1;
printf(″%d″,y);
}
A.-5 B.-1
C. 0 D. 1
10.下列程序段的输出结果是()
i=1;
while(i<3){
j=1;
while(j<=i){
printf(″%d″,i+j);
j++;
}
i++;
printf(″\n″);
}
A. 2 3 3 4 B. 2 3 4
C. 2 3 D.2
3 4 3 4
11.已知str1和str2是字符数组名,下面函数中能正确地完成字符串输出的是()
A. puts(str1,str2) B. puts(str2)
C. putchar(strl) D. putchar(str1,str2)
12.下列关于函数的说明中不正确的是()
A.函数名后面可以不要一对圆括号
B.函数参数类型必须作说明
C.函数形参个数可以是一个、多个或没有
D.空函数被调用时不做任何工作
13.若有定义:int a[5];则a数组中首元素的地址可以表示为()
A.&a B. a+1
C. a D.&a[1]
14.设有char s=″\ta\017bc″;则指针变量s指向的字符串在内存中所占的字节数是
()
A. 5 B. 6
C. 7 D. 9
15.下列关于结构体类型的定义正确的是()
A. struct tree B. struct tree
{ int branch;{ int branch;
char name[20]; char name[20],
char relation; char relation,
};};
C. struct tree D. struct tree
{ int branch{ int branch;
char name[20] char name[20];
char relation char relation;
}}
16.下列各个位运算符的优先级从左到右依次降低的是()
A.|&ˆ>> B.ˆ&>>|
C.~>>ˆ| D.~>>|ˆ
17.设有说明:int u=1,v=3,w=5;表达式:v&~~u|w的值是()
A. 3 B. 5
C. 6 D. 8
18.设有下列程序:()
#include″stdio.h″
main()
{
unsigned x=8,y=2;
printf(″%d\n″,y|~(x&y));
}
该程序的运行结果是
A.-1 B. 0xff
C.127 D. 65535
19.若有定义∶# define P(x) x x x+1和说明语句:int a=2;则表达式P(2)的值是()
A. 6 B. 8
C. 9 D. 10
20.在语句fgets(str,n,p);中,下列说法不正确的是()
A. str是字符指针 B.一次可以读n个字符
C. str是字符数组名 D.一次可以读n-1个字符
二、多项选择题(本大题共5小题,每小题2分,共10分)
在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。
21.下列关于计算机的叙述中正确的是()
A. CPU是计算机系统的部件
B. I/O设备不是计算机系统的部件
C.计算机区别于其他计算工具的本质特点是能存储数据
D.“裸机”是指不配置任何软件的计算机
E.计算机指令是控制计算机进行操作的命令
22.设有int a=3,b=-5;下列表达式的值等于1的有()
A. a&&b<0 B. fabs(b)-a-1>0
C. a>b&&b<0 D.(a,2,-5)==(b,2,a)
E. a+b<0
23.下列关于break、goto、continue语句的说法中正确的是()
A. break语句能够用于循环语句中
B. break语句不能用于switch语句中
C. goto语句可以用于直接从多层循环中退出
D. continue语句可用于跳出循环体
E. continue语句不能用于switch语句中
24.若有定义:int y[4][4],( p)[4];及赋值p=y;则下列语句中可以输出数组元数y[2][0]的值的语句是()
A. printf(″%d\n″,&y[2][0]); B. printf(″%d\n″, y[2][0]);
C. printf(″%d\n″,p[2][0]); D. printf(″%d\n″, y[2]);
E. printf(″%d\n″,((y+2));
25.设有关于结构体类型的定义:
struct worker
{
int id;
char name;
float salary;
} wl={102035,″Lihua″,2560.50}, p;
下列选项中语句语法正确的有()
A. p=wl; B. p=&wl;
C. p->id=wl->id D. p->id=wl.id;
E. p.salary=wl.salary;
三、简答题(本大题共4小题,每小题4分,共16分)
26.有无default对switch语句有什么不同的影响?
27.写出do-while语句的一般形式及其执行过程。
28.定义 char a[ ]=″I am a student.″, str=a;等价于
char a[ ]=″I am a student.″, str;
str=a;
吗?为什么?
29.设有说明:
struct vegetable
{
char part;
char color;
} clove;
char part _ of _ vegetable [3]={″AA″,″BB″,″CC″};
char seven _ color={″11″,″22″,″33″,″44″,″55″,″66″,″77″};
请分别写出将clove的成员part指向″BB″,成员color指向″55″的C语句。
四、阅读分析题(本大题共6小题,每小题5分,共30分)
30.阅读分析下面程序后,写出程序的运行结果。
# include″stdio.h″
main()
{
int a=978,x,y,z,i,j,w;
x=a/100;
y=(a-100 x)/10;
z=a-10 y-100 x;
i=y>z? z:y;
j=y<=z? z:y;
w=100 x+10 i+j;
printf(″%d,%d,%d,%d\n″,x,y,z,w);
}
31.阅读分析下面程序后,写出程序的运行结果。
# include″stdio.h″
main()
{
int n,m;
for(n=1;n<=5;n++)
{
for(m=1;m<=4;m++)
printf(″%4d″,m n);
printf(″\n″);
}
}
32.阅读分析下面程序后,写出程序的运行结果。
#include″stdio.h″
main()
{
int arr[10],i,k=0;
for(i=0;i<10;i++)
arr[i]=i;
for(i=1;i<=4;i++)
{
k+=arr[i]+i;
printf(″%5d″,k);
}
}
33.阅读分析下面程序后,写出程序的运行结果。
#include″stdio.h″
int fun(int x)
{
int p;
if(x==0||x==1)
return(3);
p=x-fun(x-2);
printf(″%5d″,p);
return(p);
}
main()
{
fun(9);
}
34.阅读下面程序,分析cat函数的功能并写出程序的运行结果。
#include″stdio.h″
void cat(char s,char t)
{
while( s) s++;
while(( s++= t++)!=′\0′);
}
main()
{
char sl[80]=″computer″,s2[80]=″Pentium_″;
cat(s2,s1);
printf(″% s\n″,s2);
}
35.阅读分析下面部分程序:
struct cjd
{
char name[9];
float score[2][2];
} x;
float t[2][2]={70.5,65.0,83.0,92.5};
int j,k;
请用for循环将t数组中的元素依次赋给结构变量x中score数组的对应元素。
五、程序设计题(本大题共2小题,每小题12分,共24分)
36.请编程从键盘上输入十个整数,计算其中大于零的奇数的平均值,并输出这些大于零的奇数以及它们的平均值。
37.有若干个学生(不超过50人)的某一门课的成绩放在文件c:\cj.dat中,要求编程统计出90~100分,80~89分,70~79分,60~69分,0~59分的人数各有多少人。
国家开放大学《程序设计基础》形考任务1试题
"1单选 C语言中函数返回值的类型是由(A)决定的.
A.函数定义时指定的类型
B. return语句中的表达式类型
C.调用该函数时的实参的数据类型
D.形参的数据类型"
官网其实有考试题库的,可以去官网看看历年真题,如果找不到的话,利用百度文库、电大题酷小程序、上学吧等考试搜题工具会好很多的。帮你搜了一些题,希望能够帮到你~~~
"2单选在函数调用时,以下说法正确的是:(B)。
A.函数调用后必须带回返回值
B.实际参数和形式参数可以同名
C.函数间的数据传递不可以使用全局变量
D.主调函数和被调函数总是在同一个文件里"
"3单选语句int*p;说明了(C)。
A. p是指向一维数组的指针
B. p是指向函数的指针
C. p是指向int型数据的指针
D. p是函数名,该函数返回一指向int型数据的指针"
"4单选下列指针的定义不正确的定义是(A)。
A. int*p=&i,i;
B. int*p,i;
C. int i,*p=&i;
D. int i,*p;"
"5单选有语句:int a[10],;则(B)是对指针变量p的正确定义和初始化。
A. int p=*a;
B. int*p=a;
C. int p=&a;
D. int*p=&a;"
"6单选若有说明语句“int a[5],*p=a;”,则对数组元素的正确引用是:( C)。
A. a[p]
B. p[a]
C.*(p+2)
D. p+2"
"7单选
有如下程序
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则数值为9的表达式是:(B)。
A.*p+9
B.*(p+8)
C.*p+=9
D. p+8"
"8单选被调函数调用结束后,返回到:(D)。
A.主调函数中该被调函数调用语句处
B.主函数中该被调函数调用语句处
C.主调函数中该被调函数调用语句的前一语句
D.主调函数中该被调函数调用语句的后一语句"
"9单选能把函数处理结果的两个数据返回给主调函数,在下面的方法中不正确的是:(A)。
A. return这两个数
B.形参用两个元素的数组
C.形参用两个这种数据类型的指针
D.用两个全局变量"
"10单选下列各语句定义了数组,其中哪一个是不正确的( C)。
A. char a[3][10]={""China"",""American"",""Asia""};
B. int x[2][2]={1,2,3,4};
C. float x[2][ ]={1,2,4,6,8,10};
D. int m[][3]={1,2,3,4,5,6};"
"11单选# include<stdio.h>int test(int b){ b*=10;printf(“b=%d”,b);return b/2;}void main(){ int b=60;b=test(b);printf(“b=%d”,b);}程序的运行结果是:( D)。
A. b=10 b=60
B. b=10 b=30
C. b=300 b=600
D. b=600 b=300"
"12单选如果一个函数作为表达式被调用,则该函数必须是( A)。
A.有返回值的函数
B.无返回值的函数
C.有参函数
D.无参函数"
"13单选 C语言程序由函数组成,它的( B)。
A.主函数必须在其它函数之前,函数内可以嵌套定义函数。
B.主函数可以在其它函数之后,函数内不可以嵌套定义函数。
C.主函数必须在其它函数之前,函数内不可以嵌套定义函数。
D.主函数可以在其它函数之后,函数内可以嵌套定义函数。"
c语言程序设计基础叶文珺版答案
初学者遇到最多的困惑是:上课也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手。发生这种现象的原因有三个:
一、所谓的看懂听明白,只是很肤浅的语法知识,而我们编写的程序或软件是要根据要解决问题的实际需要控制程序的流程,如果你没有深刻地理解C语言的语句的执行过程(或流程),你怎么会编写程序解决这些实际问题呢?
二、用C语言编程解决实际问题,所需要的不仅仅是C语言的编程知识,还需要相关的专业知识。例如,如果你不知道长方形的面积公式,即使C语言学得再好你也编不出求长方形的面积的程序来。
三、C语言程序设计是一门实践性很强的课程,“纸上谈兵”式的光学不练是学不好C语言的。例如,大家都看过精彩自行车杂技表演,假如,你从来没有骑过自行车,光听教练讲解相关的知识、规则、技巧,不要说上台表演、就是上路你恐怕都不行。
出现问题原因清楚了,那么如何学习呢?请你看【C语言学习六步曲】
特别提醒:在使用本方法之前一定要先阅读C语言的相关内容,要初步掌握相关知识的要点,然后按下述方法学习,可以达到理解、巩固、提高C语言知识和提高程序调式能力的目的。
第一步、验证性练习
在这一步要求按照教材上的程序实例进行原样输入,运行一下程序是否正确。在这一步基本掌握C语言编程软件的使用方法(包括新建、打开、保存、关闭C程序,熟练地输入、编辑C程序;初步记忆新学章节的知识点、养成良好的C语言编程风格)。单击此处查看【C语言的编程风格】
使用《Turbo C/C++ for Windows集成实验与学习环境》软件可以很方便地看着软件集成的《C语言入门教程》输入练习其中的程序例题。具体使用方法参见软件帮助部分。
初学者最容易犯的错误是:
1、没有区分开教材上的数字1和字母l,字母o和数字0的区别,造成变量未定义的错误。另一个易错点是将英文状态下的逗号,分号;括号()双引号""输入出入成中文状态下的逗号,分号;括号(),双引号“”造成非法字符错误。
2、C语言初学者易犯语法错误:使用未定义的变量、标示符(变量、常量、数组、函数等)不区分大小写、漏掉“;”、“{”与“}”、“(”与“)”不匹配、控制语句(选择、分支、循环)的格式不正确、调用库函数却没有包含相应的头文件、调用未声明的自定义函数、调用函数时实参与形参不匹配、数组的边界超界等。
3、修改C语言语法错误时要注意以下两点:
(1)、由于C语言语法比较自由、灵活,因此错误信息定位不是特别精确。例如,当提示第10行发生错误时,如果在第10行没有发现错误,从第10行开始往前查找错误并修改之。
(2)、一条语句错误可能会产生若干条错误信息只要修改了这条错误,其他错误会随之消失。特别提示:一般情况下,第一条错误信息最能反映错误的位置和类型,所以调试程序时务必根据第一条错误信息进行修改,修改后,立即运行程序,如果还有很多错误,要一个一个地修改,即,每修改一处错误要运行一次程序。
第二步、照葫芦画瓢
在第一步输入的C程序的基础上进行试验性的修改,运行一下程序看一看程序结果发生了什么变化,分析结果变化的原因,加深新学知识点的理解。事实上这和第一步时同步进行的,实现“输入”加深知识的记忆,“修改”加深对知识的理解。记忆和理解是相辅相成的,相互促进。
例如:将最简单的Hello World!程序
#include"stdio.h"
int main()
{
printf("Hello World!\n");
return 0;
}
中的printf("Hello World!\n");中的Hello World!改成你的姓名,运行一下程序,看有什么变化?
再如求1+2+3...+100的和的程序
#include<stdio.h>
main()
{
int i,sum=0;
for(i=1;i<=100;i++)
{
sum=sum+i;
}
printf("sum=%d\n",sum);
}
第1次将for(i=1;i<=100;i++)中的100改成50,运行一下程序,看有什么变化?
第2次将for(i=1;i<=100;i++)中的i++改成i=i+2,运行一下程序,看有什么变化?
找出程序结果变化的原因,就加深了对C语句的理解。
第三步、不看教材看是否能将前两步的程序进行正确地输入并运行。
在这一步要求不看教材,即使程序不能运行,看能否将其改正,使其能正确运行。目的是对前两步的记忆、理解进一步强化。
第四步、增强程序的调试能力
在《Turbo C/C++ for Windows集成实验与学习环境》集成的教材中每章都有C语言初学者易犯的错误,按照易出错的类型,将教材中的正确的程序改成错误的程序,运行一下程序,看出现的错误信息提示,并记下错误信息,再将程序改成正确的,运行一下程序。这样反复修改,就能够学习C语言程序发生错误的原因和修改错误的能力。
注意:每次只改错一个地方,目的是显示发生该错误的真正原因,避免一次改动多个地方,搞清发生错误的真正原因,切记!!!!
注意:上机调试程序时要带一个记录本,记下英文错误提示信息和解决该错误问题的方法,积累程序调试经验,避免在编程犯同样的错误,切记!!!!
例如,将Hello World程序中语句printf("Hello World!\n");中的;改成中文的分号;运行一下程序,看有什么结果?
C语言的错误信息的形式:(下面例子是的Turobo C2.0错误信息,如图1)
错误文件名行号冒号错误内容
↓↓↓↓↓
Error E:\WinTc\WinTc\frist.c 5: Function call missing) in function main
C语言的错误信息的形式:(下面例子是Visual C++6.0错误信息,如图2)
文件名行号冒号错误代码冒号错误内容
↓↓↓↓↓↓
e:\wintc\wintc\frist.c( 5): error C2143: syntax error: missing')' before';'
软件集成了高校教学用的最多的两个编译器Visual C++6.0和Turbo c 2.0,支持C、标准C、C++、标准C++、WINDOWS C程序的编辑、编译、和调试。软件根据用户输入程序的类型智能选择编译器,不用使用者干涉。
调试程序是一种实践性很强的事,光纸上谈兵是是没用的,就像游泳运动员只听教练讲解示范,而不亲自下水练习,是永远学不会游泳的。即使在优秀的程序员编写程序也会犯错误的,可能事最低级的语法错误,但他能快速发现错误并改正错误,而我们C语言初学者面对错误提示,不知道发生了什么错误,如何改正,这就是差别。
第五步、研究典型的C语言程序,提高程序设计能力
经过上述过程的学习,我们已经学会了C语言各种语句的流程(即计算机是如何执行这些语句的过程),然后就可以研读别人编写C语言经典程序,看懂别人是如何解决问题的,学习解决问题的方法和程序设计技巧,提高自己的程序设计能力。
在软件中有50多个典型的源程序,研究它的实现方法,提高自己的程序设计能力。
第六步、研究课程设计源成序,提高C语言程序设计的能力。
C语言课程设计的目的:是让学生综合利用所学的C语言知识,解决一些接近实际问题题目,提高程序设计和调试较大程序的能力,为进一步进行软件开发打下坚实的基础。
最后送C语言初学者一句话来共勉:首先要相信自己是有能力学好C语言的,然后不惜一切代价把这种能力表现出来,你就成功了。做任何事,何尝不是这样呢?兴趣是学习C语言的最大动力,学习方法给你指明努力的方向,让你事半功倍。如果你感觉对你有帮助的话,请回帖支持,让更多的朋友知道它,谢谢支持!!!
好了,关于程序设计基础期末试题及答案和大学c语言期末考试题库的问题到这里结束啦,希望可以解决您的问题哈!