程序设计基础07-08春试题及答案
- 格式:pdf
- 大小:140.69 KB
- 文档页数:13
2008年(春)江苏省高等学校非计算机专业学生计算机基础知识和应用能力等级考试一级(本试卷答题时间为100分钟)试卷密码:UMEB试卷代号:IT06考生须知:1.请考生准确无误地输入“准考证号”、“姓名”、“试卷密码”,确认后进入考试。
2.在未完成所有考试项目之前,不得按“交卷”按钮;一旦按“交卷”按钮,考生则不得再次进入考试系统。
一、基础知识必做题(共45题)[1]. 文档是程序开发、维护和使用所涉及的资料,是软件的重要组成部分之一。
A.正确B.错误[2]. 使用Windows2000或Windows XP,如果要查看当前正在运行哪些应用程序,可以使用的系统工具是________。
A.资源管理器B.系统监视器C.任务管理器D.网络监视器[3]. 在域名系统中,每个域可以再分成一系列的子域,但最多不能超过____5______级。
[4]. 计算机常用的输入设备为键盘、鼠标,常用的输出设备有显示器、打印机。
A.正确B.错误[5]. 计算机中总线的重要指标之一是带宽,它指的是总线中数据线的宽度,用二进位数目来表示(如16位,32位总线)。
A.正确B.错误[6]. 中文Word是一个功能丰富的文字处理软件,下面的叙述中错误的是________。
A.在文本编辑过程中,它能做到“所见即所得”B.在文本编辑过程中,它不具有“回退”(Undo)功能C.它可以编辑制作超文本D.它不但能进行编辑操作,而且能自动生成文本的“摘要”[7]. 在计算机中描述景物结构、形状与外貌,然后将它绘制成图像显示出来,这称为_____。
A.位图B.点阵图像C.扫描图像D.合成图像(图形)[8]. 喷墨打印机的耗材之一是_墨水_______,它的使用要求很高,消耗也快。
[9]. PC机的主存储器是由许多DRAM芯片组成的,目前其完成一次存取操作所用时间的单位是____ms____。
[10]. 计算机病毒也是一种程序,它在某些条件下激活,起干扰和破坏作用,并能传染到其它计算机。
2007级等级考试《C语言程序设计》基础知识练习50101、在C语言源程序中,以下叙述正确的是()。
答案:CA、main函数必须位于文件的开头B、每行只能写一条语句C、程序中的一个语句可以写成多行D、每个语句的最后必须有点号50102、关于C语言的源程序的叙述中,错误的是()。
答案:CA、C语言的源程序由函数构成B、main函数可以书写在自定义函数之后C、必须包含有输入语句D、一行可以书写多个语句50103、关于C语言数据类型的叙述,正确的是()。
答案:CA、枚举类型不是基本类型B、数组不是构造类型C、变量必须先定义后使用D、不允许使用空类型50104、C程序中main函数的位置()。
答案:CA、必须在最开始B、必须在系统库函数后面C、可以在自定义函数后面D、必须在最后50105、C语言的函数体由()括起来。
答案:BA、()B、{ }C、[ ]D、/* */50106、关于C语言的叙述中,不正确的是()。
答案:DA、C程序可由一个或多个函数组成B、C程序必须包含一个main()函数C、C程序的基本组成单位是函数D、注释说明只能位于一条语句的后面50107、以下叙述不正确的是()。
答案:DA、C程序的执行总是从main函数开始B、一个C源程序必须包含一个main函数C、C语言程序的基本组成单位是函数D、在编译C程序源程序时,可发现注释中的拼写错误50108、结构化程序设计的三种基本结构是()。
答案:CA、函数结构、分支结构、判断结构B、函数结构、嵌套结构、平行结构C、顺序结构、分支结构、循环结构D、分支结构、循环结构、嵌套结构50109、对于C语言源程序,以下叙述错误的是()。
答案:CA、可以有空语句B、函数之间是平等的,在一个函数内部不能定义其它函数C、程序调试时如果没有提示错误,就能得到正确结果D、注释可以出现在语句的前面50201、下面关于C语言用户标识符的描述,正确的是()。
答案:DA、不区分大小写B、用户标识符不能描述常量C、类型名也是用户标识符D、用户标识符可以作为变量名50202、以下()是正确的变量名。
吉林大学农学部2007—2008学年第二学期《C 语言程序设计》考试试卷(A 卷)(考试时间:120分钟,本卷共3页,共印 份)10道小题,每道小题2分,满分20分)1.下列叙述中不正确的是( )A) 一个C 源程序可由一个或多个函数组成 B) 一个C 源程序必须包含一个main 函数 C) C 程序的基本组成单位是函数D) 在C 程序中,注释说明只能位于一条语句的后面2.若有定义:int a=7; float x=2.5, y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值是( ) A) 2.500000 B) 2.750000 C) 3.500000 D) 0.000000 3.若有代数式bcae 3,则不正确的C 语言表达式是( )A) a/b/c*e*3 B) 3*a*e/b/c C) 3*a*e/b*c D) a*e/c/b*34.若有定义:int m=5, y=2; 则计算表达式y + = y - = m * = y 后的y 值为( ) A) -15 B) -8 C)10 D) -165.执行以下程序段后,变量a, b, c 的值分别是( ) int x=10, y=9; int a,b,c;a = (--x= =y++) ? - -x : ++y; b=x++; c=y;A) a=9,b=9,c=9 B) a=8,b=8,c=10 C) a=9,b=10,c=9 D) a=1,b=11,c=10 6.有以下程序 main() { int i;for(i=0;i<3;i++) switch(i) { case 1: printf("%d",i); case 2: printf("%d",i); default: printf("%d",i); } }执行后输出结果是( ) A) 011122 B) 012 C) 012020 D) 120 7.下面程序的运行结果是( ) int x=-1; do{ x=x*x; } while(!x);A) 是死循环 B) 循环执行二次 C) 循环执行一次 D) 有语法错误 8.若有以下程序段: … …int a[]={4,0,2,3,1}, i, j, t; for(i=1; i<5; i++) {t=a[i]; j=i-1;while(j>=0 && t>a[i]) {a[j+1]=a[j]; j--; }a[j+1]=t; }… …则该程序段的功能是( )A) 对数组a 进行插入排序(升序) B) 对数组a 进行插入排序(降序) C) 对数组a 进行选择排序(升序) D) 对数组a 进行选择排序(降序)9.若二维数组a 有m 列,则计算任一元素a[i][j]在数组中位置的公式为( )。
2007级《程序设计基础(一)》期末考试参考答案(A卷)一、单选题:(每题1分,共20分)1. D2. A3. C4. B5. A6. C7. D8. A9. D10. B11. B12. B13. A14. B15. C16. B17.C 18. D19. C 20. C二、程序阅读题:(每题4分,共24分)1.j=82. 2 4 0 8 103.9*7*8*5*3*4.before swap a[0]=5,a[1]=7after swap a[0]=5,a[1]=75.61231116. 0 3 6 91 4 7 102 5 8 113 6 9 12三、改错题:(每题5分,共15分)1.#include <stdio.h> -----------1分void fun(char s[],char c); -----------1分void fun(char s[],char c) -----------1分{int i,j;for(i=j=0;s[i];i++)if(s[i]!= c)s[j++]=s[i]; ----------1分s[j]='\0'; ----------1分}2.#include <stdio.h>int plus(int ,int); ----------0.5分void main(){int x,y,z; ----------1分scanf("%d,%d",&x,&y); ----------1分z=plus(x,y); ----------0.5分printf("The sum is %d",z);}int plus(int a,int b) ----------1分{int c; ----------1分c=a+b;return c;}3.#include <stdio.h>int fun(float x[],int n){int i,c=0; ----------1分float xn=0; ----------1分for(i=0;i<n;i++)xn=xn+x[i]/n; ----------1分printf("average=%.2f\n",xn); ----------1分for(i=0;i<n;i++)if(x[i]>=xn) ----------1分c++;return c;}四、程序填空:(每空2 分,共16分)⑴flag*1.0/k ⑵flag*=-1(或flag=-flag)⑶top<=bottom ⑷(top+bottom)/2 ⑸key>list[mid] ⑹return mid (或index=mid;break;)⑺x ⑻x*(1-px(x,n-1))五、程序设计题:(第1小题5分,第2小题8分,第3小题12分,共25分)1.#include <stdio.h>void main(){int x,max;printf("input a group of integer end of 0:\n");scanf("%d",&x); ----------1分max=x; ----------1分while(x!=0) ----------1分{scanf("%d",&x);if(max<x) ----------1分max=x;}printf("max=%d\n",max); ----------1分}2.#include <stdio.h>void main(){int i,j,k; ----------1分for(i=1;i<100;i++) ----------1分for(j=1;j<10;j++) ----------2分{k=100-i-j; ----------1分if(i*0.4+j*4+k*0.2==40&&k>0) ----------2分printf("苹果%3d,西瓜%3d,梨%3d\n",i,j,k); ----------1分}}3.#include <stdio.h>#define N 10void sort(int [],int); ----------0.5分void insert(int [],int,int); ----------0.5分void main(){int i,key,a[N+1];for(i=0;i<N;i++) ----------1分scanf("%d",&a[i]);sort(a,N); ----------0.5分printf("排序后:\n");for(i=0;i<N;i++)printf("%5d",a[i]);printf("\n请输入要插入的数:");scanf("%d",&key);insert(a,key,N+1); ----------0.5分printf("\n插入后:\n");for(i=0;i<N+1;i++) ----------1分printf("%5d",a[i]);}void sort(int a[],int n){int i,j,temp;for(i=0;i<n-1;i++) ----------1分for(j=0;j<n-1-i;j++) ----------1分if(a[j]>a[j+1]) ----------1分{temp=a[j]; ----------1分a[j]=a[j+1];a[j+1]=temp;}}void insert(int a[],int k,int n){int i,j;for(i=0;i<n-1;i++) ----------1分if(k<a[i]) ----------1分break;for(j=n-1;j>i;j--) ----------1分a[j]=a[j-1];a[i]=k; ----------1分}。
程序设计基础理论练习题(带答案)程序设计基础理论练习题(带答案)1. 编程语言的发展历程从机器语言到高级语言的发展,现代计算机编程语言的分类和特点。
答案:编程语言的发展经历了多个阶段。
最早的计算机只能使用机器语言进行编程,这是一种由0和1组成的二进制代码。
随着计算机的发展,高级语言逐渐出现。
高级语言通过使用更接近自然语言的语法和结构,使得编程更加易于理解和用户友好。
现代计算机编程语言多种多样,比如C、Java、Python等。
它们各自有着不同的特点和用途。
2. 数据类型与变量不同编程语言中常见的数据类型和变量的定义、使用方法。
答案:不同编程语言中常见的数据类型包括整数、浮点数、布尔值、字符和字符串等。
变量用于存储不同类型的数据。
在大部分编程语言中,变量需要先定义,然后才能使用。
定义变量时需要指定变量名和数据类型。
变量名是用于标识变量的名称,而数据类型决定了变量可以存储的值的种类和范围。
使用变量时可以给其赋值或者读取其值。
3. 运算符常见的运算符有哪些?它们的功能和使用方法是什么?答案:常见的运算符包括算术运算符、比较运算符、逻辑运算符和赋值运算符等。
算术运算符包括加、减、乘、除、取余等,用于执行基本的数学运算。
比较运算符用于比较两个值的大小关系,包括等于、大于、小于等。
逻辑运算符用于处理布尔值,比如与、或、非等。
赋值运算符用于将一个值赋给一个变量。
4. 控制流程程序中常见的控制流程结构,包括条件判断和循环结构。
答案:程序中常见的控制流程包括条件判断和循环结构。
条件判断结构用于根据某个条件的真假来决定执行不同的代码段。
常见的条件判断结构有if语句和switch语句。
循环结构用于反复执行某段代码,直到满足某个条件才停止。
常见的循环结构有while循环、do-while循环和for循环。
5. 函数和模块函数和模块的定义和使用方法,函数的参数传递和返回值。
答案:函数是一段封装了特定功能的代码块,可以被反复调用。
南昌大学2007~2008学年第二学期期末考试试卷6、在程序中执行到________语句时,将结束所在函数的执行过程,返回到调用该函数的位置。
7、以下程序main(){int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};int i,s=0;for(i=0;i〈4;i++) s+=aa[i][1];printf(%d\n,s);}程序运行后的输出结果是________________。
8、以下fun函数把ch中的大写字母转换成字母序列中的下一个大写字母,字母Z转换成字母A,其它字符不变,返回转换后的字母或其它字符。
请填空。
char fun(char ch){if(ch= =’Z’) ch=__________;else if(ch〉='A’&&ch<=’Y’) ch=__________;return ch;}9、下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数.#include 〈stdio。
h>void main(void){int i, j;for(i=0; i〈10; i++) {j = i*10+6;if (_____ _____ ) continue;printf(”%d ”,j);}}10、以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9—10,并输出结果。
请填空。
int fun(int n){int m=0,f=1,i;for(i=1;i<=n;i++){m+=i*f;f= __________ ;}return m;}main(){printf("m=%d\n”,________ __);}11、下面程序段是输出两个字符串中对应字符相等的字符。
请选择填空.char x[]=”programming”;char y[]=”Fortran”;int i=0;while (_______________ __ __){if (x[i]==y[i]) printf ("%c”,x[i]);else i++;}}12、以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和.请填空。
2008年07级C程序设计期末考试卷(A)[注意] 所有答案写在单张的答题卷上。
一、判断题(本题共10分,每小题1分,用A表示正确,用B表示错误。
)(1) C语言程序的变量必须先定义再使用。
(2) do-while语句构成的循环不能用其他语句构成的循环来代替。
(3) C语言规定,函数的实参应与其对应的形参类型一致。
(4) C语言认为名为Student和student的变量是不同变量。
(5) 当两个字符串所包含的字符个数相同时,才能比较两个字符串的大小。
(6) 如果定义了int a[10],那么使用语句a[10]=10可以给数组元素a[10]初始化。
(7) 用关键字static声明的变量是全局变量,在整个程序的全部执行过程中都占用存储单元。
(8) 如果a=1,b=2,c=3,d=4则表达式a>b?c:d的值等于3。
(9) 如果a=15,那么执行a=a>>2以后,a的值就变成了3。
(10) 结构体成员的类型可以是另外一种结构体类型。
二、单选题(本题共20分,每小题2分)(11) 假设有以下定义:int a=0xAA,b=0x55,则a & b 的值为:________。
[A] 0x0 [B] 0xff[C] 0x01 [D] 0xAA(12) 假设有以下定义:int a[5]={1,2,3,4,5},i=3,*p=a , *q=a; 则不能正确执行的语句是________。
[A] i=*p +*q; [B] a=i;[C] *p = *(a+i); [D] i = *p**(q+2);(13) 以下有关宏定义的叙述,正确的是________。
[A]宏名必须用大写字母表示[B]带参数的宏就是一个函数[C]宏名不具有类型[D]宏定义和其它C语句,其末尾要加分号(14) 若用数组名作为函数调用时的参数,则实际上传递给形参的是________。
[A] 数组第一个元素的值[B] 数组元素的值[C] 数组的首地址[D] 数组名1第页(共7 页)(15) 如果在用户的程序中要使用C库函数中的数学函数时,应在该源文件中使用的include命令是________。
2008级计算机程序设计基础试题参考答案(A卷)一.写出下列语句、表达式、程序的运行结果(每空2分,共24分)1.12.1, 23.44.6,7 5.06.9 7.3.5 8.199.-1 10. 6,9二.下列各程序中每个程序各有2个错误,指出错误语句,并将正确语句写在旁边(每小题4分,共20分)1.文件开头加<math.h>float c;写在a=2; b=3;之前2.scanf (“ %f ”,a); 改成scanf(“ %f ”,&a);b=5/8*(a-12); 改成b=5.0/8*(a-12);3.在子函数f中:加语句if(m= =0) a=1;和语句return(a);4.变量定义中加语句int sum=0;for(i=1;i<=3;i++) 改为for(i=0;i<3;i++)5. 将语句y=2x; 改为y=2*x;在语句 y=2x;之前加 {在语句printf(“%d”,y); 之后加 }三.简答题(每小题6分,共18分)1.while循环是首先判断循环条件是否成立,若成立则执行循环,若不成立循环则一次也不执行;do-while循环是先执行循环,再判断循环条件是否满足,若满足则继续执行循环,若不满足则终止循环的运行。
在do-while循环中,循环体至少要执行一次。
2.break语句是当break语句前的判断条件成立时,立即结束循环,跳出循环体,不再进行条件判断;continue语句是当continue语句前的判断条件成立时,结束本次循环,跳过本次循环体下面尚未执行的语句,接着“增”或“减”循环控制变量,再继续判断条件是否满足。
3.*(p++)是先取*p的值,后使p加1,对本例即先得到a[0]的值,然后p 指针指向a[1];*(++p)使先使p加1,后取*p的值,对本例即p指针指向a[1],再得到a[1]的值。
四.下列各程序中,有若干条语句未被写出。