程序设计基础07-08春试题及答案

合集下载

2008年春等级考试(一级)第六场试卷UMEB答案及分章

2008年春等级考试(一级)第六场试卷UMEB答案及分章

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语言程序设计》基础知识练习8k

2007级等级考试《C语言程序设计》基础知识练习8k

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++)期末考试试卷(附答案)

上海交通大学 2007-2008学年 程序设计基础(C++)期末考试试卷(附答案)
char *pt3="34";
pt3=pt2;//A
strcpy(pt1, pt2); //B
strcpy(pt2, pt3);//C
cout<<pt2;//D
}
9下列定义或者声明语句哪个是不正确的(D)
A void* f(int a[], int n);
B void* (*f)(int a[], int n);
3写出运行结果:
#include<iostream>
using namespace std;
void foo( int &c){
static a=1;
c+=a++;
}
void main()
{
int a;
int &b=a;
a=10;
foo(a);
cout<<a<<endl;
foo(++b);
cout<<a<<endl;
A break语句只应用于循环体中
B continue语句只应用于循环体中
C break是无条件跳转语句,continue不是
D break和continue的跳转范围不够明确,容易产生问题
4.有如下定义语句:int a[]={1,2,3,4,5};,则对语句int *p=a;正确的描述是(B)。
A语句int *p=a;定义不正确
一、选择填空:(每题1分,共10分)
1.已知各变量的类型说明如下:
inta=1,b=2;
double x=1.42;
则以下不符合C++语言语法的表达式是(D)

2007-2008年c语言考试A卷

2007-2008年c语言考试A卷

吉林大学农学部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]在数组中位置的公式为( )。

C语言程序设计2007~2008学年第二学期期末考试试卷(A)

C语言程序设计2007~2008学年第二学期期末考试试卷(A)
时,其数组下标的数据类型允许是

整型常量整型表达式 整型常量或整型表达式任何类型的表达式

若二维数组有列,则在前的元素个数为

、 以下叙述中不正确的是。
在中,函数中的自动变量可以赋初值,每调用一次,赋一次初值 在中,在调用函数时,实参和对应形参在类型上只需赋值兼容 在中,外部变量的隐含类别是自动存储类别 在中,函数形参可以说明为变量
、 以下程序运行后输出结果是 () () ()
大厦白蚁预防工程承包合同合同签订版
、 以下程序运行后输出结果是 ❖❖
、 以下程序运行后输出结果是
四、 程序设计题共分
得分 评阅人
某班级学生进行百米跑测试,规定成绩在秒以内(含秒)为优秀,在 秒以上至秒为达标,在秒以上为不达标,编一程序,从键盘上输入每个 人的成绩,以作为输入变量,并以小于的任何数作为终止标志,分别用变量 和统计出成绩为优秀、达标和不达标的人数。
、 以下正确的函数原型语句是。
、 循环体至少被执行一次的语句为。
循环循环循环 任一种循环
、 在下面循环语句中内层循环体语句的执行总次数为。
、 函数调用不可以。
出现在一个表达式中 出现在执行语句中 作为一个函数的实参 作为一个函数的形参
大厦白蚁预防工程承包合同合同签订版
、 将两个字符串连接起来组成一个字符串时,选用函数。
大厦白蚁预防工程承包合同合同签订版
试卷编号:卷
课程编号:课程名称:语言程序设计考试形式: 闭卷
适用班级:全校非计算机专业姓名:学号: 班级:
学院:专业: 考试日期:、、
题号 一 二 三 四 五 六 七 八 九 十 总分 累分人
题分 得分
签 名
考生注意事项:、本试卷共页,请查看试卷中是否有缺页或破损。如有立 即举手报告以便更换。

2007级程序设计基础(一)期末考试参考答案A卷

2007级程序设计基础(一)期末考试参考答案A卷

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. 函数和模块函数和模块的定义和使用方法,函数的参数传递和返回值。

答案:函数是一段封装了特定功能的代码块,可以被反复调用。

C语言程序设计2007~2008学年第二学期期末考试试卷(A)

C语言程序设计2007~2008学年第二学期期末考试试卷(A)

南昌大学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、以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和.请填空。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(073 试卷) 6 / 13
三、改错程序(8 分,每错误点 2 分)
下列程序各有两个错误(两个错误分别是在不同的行上,并只在有 注解行号所标注的行上) ,按原来程序的要求,纠正错误,并将错 误所在行号以及错误行完整的正确内容写在答卷纸的对应栏内。 (1)以下程序是在 5 个字符串中求最小字符串并输出结果。 #include <string.h> #include <stdio.h> main() { char *min,*s[5]={ “int”,“short”,“long”,“char”, “float” }; int i; /*1*/ min=s[0]; /*2*/ for ( i=1; i<5; i++) /*3*/ if( min>s[i] ) /*4*/ min=s[i]; /*5*/ printf("%s\n", *min); } (2)以下程序从输入的 10 个整数中找到并输出正好出现 2 次的数 (该数只输出一次) ,如没有这样的数,则输出 No。 #include <stdio.h> main() { int a[10], i, j, count, yn; for(i=0; i<10; i++) scanf(“%d”, &a[i]); /*1*/ for(count=i=0; i<10; i++) { /*2*/ for(yn=j=0; j<10; j++) /*3*/ if(a[i]==a[j]) /*4*/ if(i>j) break; /*5*/ else count++; /*6*/ if(count==2) { /*7*/ printf(“%d”, a[i]);
(073 试卷) 1 / 13
(strlen( ) 为求字符串长度的库函数,sizeof 为求对象存储字节 数的运算符) 。 10.定义 struct student { int num; char name[20];} st[3]; FILE *fp; fp 已以文本方式打开文件写,试写一条语句:将 st[2] 的各成员的值写到文件 fp 中。
(073)上海大学 2007-2008 年春季学期试卷
2008.6
课程名:程序设计基础(C) 课程号:00863006 学分:5
应试人声明: 我保证遵守《上海大学学生手册》中的《上海大学考场规则》 ,如有考试违纪、作弊行 为,愿意接受《上海大学学生考试违纪、作弊行为界定及处分规定》的纪律处分。
学号: 题号 题分 得分 一 21
(073 试卷) 8 / 13
创建并插入新结点到链表表尾; 函数 reverse 实现将头指针为 head 的链表的链接顺序颠倒的功能;函数 list 输出头指针为 head 的链 表信息。 #include <stdlib.h> #include <stdio.h> struct node { char data; struct node *next; }; struct node *insert(struct node *head, char ch) { /* 创建并插入新结点到链表表尾 */ struct node *p, *q; p=(struct node *)malloc(sizeof(struct node)); p->data=ch; p->next=NULL; if( head==NULL ) return p; for( q=head; (4) ; q=q->next ); q->next=p; return head; } struct node *reverse(struct node *head) { /* 颠倒链表的链接顺序 */ struct node *p, *q1,*q2; q2=head; q1=NULL; while( q2!=NULL ) { p=q2->next; q2->next=q1; q1=q2; ; q2= (5) } head= (6) ; return head;
(073 试卷) 5 / 13
fib( n-2, &f1 ); fib( n-1, &f2 ); *s=f1+f2; } } main() { long fn; int n; scanf( “%d”, &n ); fib( n, &fn ); printf( “f(%d)=%ld\n”, n, fn ); } 输入:9 输出:? (9)程序 #include <stdio.h> main() { FILE *fp; int i,a[10] = { 11,22,33,44,55,66,77,88,99,100 }; fp = fopen( "test.dat", "wb" ); fwrite( a, sizeof(int), 10, fp ); fclose( fp ); fp = fopen( "test.dat", "rb" ); for ( i = 0; i < 4; i++ ) fread( &a[i+3], sizeof(int), 1, fp ); for ( i = 0; i < 3; i++ ) fread( &a[i+1], sizeof(int), 1, fp ); fclose( fp ); for ( i = 0; i < 10; i++ ) printf( "%d ", a[i] ); } 假设文件操作总是成功。 输出:?
(073 试卷) 7 / 13
/*8*/ }
yn=1; } if(yn==0) printf(“No.”); printf(“\n”); }
四、程序填空(12 分,每填空 2 分)
阅读下列问题描述和相应的 C 程序,把应填入其中 (n) 处的 内容写在答卷纸的对应栏内。 (1) 以下程序用二分法在一个各元已按升序排序的整型数组中查找 某个数。若存在,输出该数及它的下标位置;若不存在,输出表示 找不到该数的信息。 main ( ) { int low, high, m, x; int a[10]={ -54, -34, -8, 0, 3, 12, 25, 56, 68, 98 }; scanf (“%d”, &x); low=0; high=9; while (low<=high) { m=(low+high)/2; ; if ( x==a[m] ) (1) else if ( (2) ) low=m+1; else high=m-1; } ) if ( (3) printf (“%d position is %d\n”, x, m); else printf(“%d is not found.\n”, x); } (2)以下程序读入一行字符,且每个字符存入一个结点,按输入 顺序建立一个链表的结点序列,并输出该行字符,然后反序链表的 结点序列,再输出反序的该行字符。其中,函数 insert 的功能是
(073 试卷) 3 / 13
int run( int *p ) { int i, r=0; for( i=0; *(p+i)!=0; i+=2 ) switch( *(p+i) ) { case 1: r+=*(p+i+1); break; case 2: r-=*(p+i+1); break; case 3: r*=*(p+i+1); break; case 4: r/=*(p+i+1); } return r; } main() { int a[]={ 2, 100, 4, 4, 1, 50, 3, 5, 0, 0 }; printf( “%d\n”, run(a) ); } 输出:? (6)程序 #include <stdio.h> int n=0; int func( int x ) { int y=1; static int z=1; y+=x; z+=x; printf( “%d: %d,%d,%d\n”, ++n, x, y, z); } main() { int i=0; while( i++<3 ) func(i); printf( “Total: %d\n”, n );
姓名: 二 36 三 8 四 12
学院/教师: 卷面 77 上机 23 总分 100
考生须知: 1. 试卷和答题纸上的”学号、姓名、学院、教师”都要填上; 2. 所有答题内容都写在答卷纸上,交卷时将试卷和答卷纸一起交上; 3. 不遵守上述要求者考试成绩将为零分。 4. 本卷考试的得分为卷面分,电脑上机考试(另行安排)的得分为上 机分,考试成绩为卷面); } } 输入: abcd 输出:? (3)程序 #include <stdio.h> main() { int i = 1; while ( i<=15 ) if( ++i%3!=2 ) continue; else printf( “%d ”, i ); printf( “\n” ); } 输出:? (4)程序 #include <stdio.h> main() { int a[3][3]={ 1,3,6,7,9,11,14,15,17 }; int i,j,s; for( s=i=0, j=2; i<3; i++, j-- ) s+=a[i][j]; printf( “%d,”, s ); for( s=i=j=0; j<3; i++, j++ ) s+=a[i][j]; printf( “%d\n”, s ); } 输出:? (5)程序 #include <stdio.h>
相关文档
最新文档