交大C++程序设计机考题目
- 格式:doc
- 大小:54.50 KB
- 文档页数:6
专业课复习资料(最新版)封面数据结构与C语言程序设计一. 是非题(2’⨯10)( )1、 队列逻辑上是一个表头和表尾既能插入又能删除的线性表。
( )2、 任何一个递归过程都可以转换成非递归过程。
( )3、 与n个键值的集合{k1,k2,…,kn}相对应的堆是唯一的。
( )4、 在索引顺序表上实现分块查找,在等概率查找情况下,其查找长度只与表中元素个数有关,而与每块中元素个数无关。
( )5、 所谓加权无向图G的最小生成树T就是将G中各结点间的最短路径作为边所构造出来的G的子图。
( )6、 在10万个随机排列的数据中,要选出5个最小的数,采用快速排序比采用Shell排序、堆排序及各种直接排序法都快。
( )7、 B树查找算法的时间复杂性为O(n)。
( )8、 哈希表查找无需进行关键字的比较。
( )9、 在执行某个排序过程中,出现排序码朝着最终位置相反方向移动,则该算法是不稳定的。
( )10、任何有向图的顶点都可以按拓扑序排序。
二.填空题(2’⨯6)1.假设用于通信的电文由8个字母组成,其频率分别为0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10, 为这8个字母设计哈夫曼编码,其中编码长度最大的字母的编码是 位。
2.已知二叉树按中序遍历所得到的结点序列为DCBGEAHFIJK, 按后序遍历所得到的结点序列为DCEGBFHKJIA, 按先序遍历所得到的结点序列为 。
3. 设哈希表长度为11,散列函数H(k)=k MOD 11, 若输入顺序为(18,10,21,9,6,3,16,25,7),处理冲突方法为线性探测再散列,请构造哈希表 。
果 。
5.已知模式匹配的KMP算法中模式串t=’adabbadada’,其next函数的值为 。
6.在置换-选择排序中,假设工作区的容量为w,若不计输入、输出的时间,则对n个记录的文件而言,生成所有初始归并段所需时间为 。
三.简答题(6’⨯5)1.有n个不同的英文单词,它们的长度相等,均为m,若n>>50,m<5,试问采用什么排序方法时间复杂度最佳?为什么?2.对于一个栈,给出输入序列A,B,C,试给出全部可能的输出序列。
A . if (ch >= ’a’ && ch <= ’z’) ch = ch – ‘A’ + ’a’;B . if (ch >= ’a’ && ch <=’z’) ch = ch + ’A’;C . if (ch >= ’a’ && ch <= ’z’) ch = ch +‘a’;D . if (ch >= ’a’ && ch <= ’z’) ch = ch -‘a’ + ’A’;3. 已知枚举类型shapeT 定义如下:enum shapeT {rectangle, square, triangle, diamond=9, oval, circle};则triangle 和circle 内部编码分别是_______。
A .2, 5B 。
3, 6C 。
4, 11D 。
3, 114. 下面语句正确的有____A. int *p=&10;B. char *p[]={‘a’, ’b’, ’c’, ’d’};C. char *s=”hello world”; s=”hello SJTU”D. char s[]={“hello world”}; s=”hello SJTU”;5.假设有如下语句int a[10], *p=a;则下面的表达式中不正确的是___A. a=p+6B. p=a+3C. *p=a[3]D. a[2]=p[5]6. 假设有如下语句int a[5][6]; int *p=&a[0][0];则能够正确表示数组元素a[3][2]的表达式是___A. p[3][2]B. *(p+20)C. *( ( *(p + 3) ) + 2 )D. (*(p+3))[2]a = 4;b = a++;c = ++b;这些语句执行后,a, b, c的值分别为_______。
A、4, 5, 6B、5, 6, 7C、5, 6, 6D、5, 5, 59. 已知变量的说明如下:int a = 4, b = 2;double d;执行语句d = 1/a + 1/b; 后, d的值为。
一、单选1、函数rewind的作用是()。
A、使位置指针重新返回文件的开头B、将位置指针指向文件中所要求的特定位置C、使位置指针指向文件的末尾D、使位置指针自动移至下一个字符位置正确答案∶A2、以下的选择中,正确的赋值语句是()。
A、a=1,b=2B、j++C、a=b=5;D、y=int(x)正确答案∶C3、double x;scanf("%lf"&x);不可以赋值给x变量的常量是()。
A、123B、100000C、A’D、abc正确答案∶D4、以下正确的说法是()。
A、用户若需调用标准库函数,调用前必须重新定义B、用户可以重新定义标准库函数,若如此,该函数将失去原有含义C、系统根本不允许用户重新定义标准库函数D、用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调正确答案∶ B4、下列程序段的输出结果为()。
Int x=3,y=2;prinf("%d",(x-=y,x*=y+8/5));A、1B、7C、3D、5正确答案∶C5、以下标识符中,不能作为合法的C用户定义标识符的是()。
A、putcharB、_doubleC、_123D、INT正确答案∶ A6、要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是()。
A、fopen("A.\user\abc.txt","')B、 fopen("A.\user\abc.txt","r+")C、fopen("er\abc.txt","rb")D、fopen("A.\user\abc.txt","w")正确答案∶A7、若有下列定义和语句,则对a数组元素的非法引用是()。
C语言程序设计参考答案上海交大出版社第1章程序设计题参考答案1.代码1-1如下:2.代码1-2如下:3.代码1-3如下:4.代码1-4如下:5.代码1-5如下:“如何让你的幻灯片动起来”培训课时:一课时。
培训内容:“幻灯片切换”、“自定义动画”和“动作设置”(超链接)在幻灯片中的应用。
培训目标:这次培训要完成最后几张幻灯片的制作,你要对演示文稿设置幻灯片的切换效果,为幻灯片的文字、文本框等内容设置一些动画效果,例如文字显示的效果以及显示的顺序等。
1、为每张幻灯片设置切换效果以及换页方式等。
2、为幻灯片的标题、正文和图片等设置动画效果。
3、设置各个对象适当的显示顺序。
4、添加一些适宜的背景声音效果,以衬托主题内容。
5、合理利用“动作设置”中的“超链接”。
6、幻灯片“动画效果”以及“幻灯片切换”设计的注意事项。
培训过程:导言:到目前为止,你已经制作了幻灯片,学会了不少制作幻灯片的操作,幻灯片中有文字,也有图片,还有声音,你的演示文稿顿时变得既“活泼”又能“悦耳”了起来啦!假如能让幻灯片的文字、图片显示的时候多一些动画效果,让它“动”起来,那么幻灯片的效果一定更妙!新增加一张新的幻灯片,在幻灯片中加入文本框和正文。
(提示:点击菜单项“插入”->“新幻灯片”,在对话框中选择合适的版式)1、为每张幻灯片设置切换效果以及换页方式等。
(1)单击“幻灯片放映”菜单->“幻灯片切换”,出现一个对话框。
这时可以为当前的幻灯片设置切换时的“效果”、“换页方式”以及“声音效果”等。
(2)在“效果”区内选择幻灯片切换放映时的效果方式。
(3)在“速度”中选择显示速度。
(4)在“声音”栏内选择合适的背景声音。
(5)在“换片方式”中,选择下一张幻灯片出现时的操作方式。
(6)如果想把这种设置应用于所有幻灯片,就选择“应用于所有幻灯片”2、为幻灯片的标题、正文和图片等设置动画效果。
(1)选中需要设置动画效果的标题、正文或图片等。
交大机考试题库及答案大全1. 选择题1.1 计算机科学中,以下哪个算法不属于排序算法?A. 快速排序B. 二分查找C. 归并排序D. 堆排序答案:B. 二分查找1.2 在C语言中,以下哪个关键字用于声明一个函数?A. intB. voidC. returnD. function答案:B. void2. 填空题2.1 计算机存储器中,______是最快的存储介质。
答案:RAM2.2 在数据库管理系统中,______是一种用于存储和管理数据的系统化方法。
答案:数据库3. 简答题3.1 简述计算机硬件系统的五大基本组成部分。
答案:计算机硬件系统的五大基本组成部分包括输入设备、输出设备、中央处理器(CPU)、存储器和外部存储设备。
3.2 描述操作系统的主要功能。
答案:操作系统的主要功能包括进程管理、存储管理、文件管理、设备管理和用户接口。
4. 编程题4.1 编写一个函数,实现对一个整数数组进行排序,并返回排序后的数组。
答案:```pythondef sort_array(arr):return sorted(arr)```4.2 编写一个程序,计算并输出100以内所有素数的和。
答案:```pythondef is_prime(num):if num <= 1:return Falsefor i in range(2, int(num0.5) + 1):if num % i == 0:return Falsereturn Truedef sum_of_primes():total = 0for i in range(2, 100):if is_prime(i):total += ireturn totalprint(sum_of_primes())```5. 论述题5.1 论述计算机病毒的特点及其对计算机系统可能造成的危害。
答案:计算机病毒是一种恶意软件,能够自我复制并传播到其他计算机系统。
其特点包括隐蔽性、破坏性、传染性和潜伏性。
二、多选题(20分)61、以下合法的十六进制数是()。
A、 OxffB、0XabcD、0X9X正确答案:BC学生答案:BCV62、定义语句..若要通过scanf("%d.%d”,&x,&y);语句使变量x得到数值11,变量y 得到数值12,下面四组输入形式中,正确的有()。
<回车>8、11.<空格>12<回车>C、<回车>、<回车>12<回车>正确答案:BCD学生答苯:BCDV63。
以下对C语言中的函数描述不正确的有()-A、可以概套定义,不可以嵌套调用B、不可以嵌套定义,可以嵌套调用C。
可以嵌套定义,也可以嵌套调用D、嵌套定义和嵌套调用都不允许正确答案:ACD学生答案:ACD>64、著a,,d都是int型变童且初值为0,以下选项中正确的赋值语句是()。
=b=c=d=100,B、d++.+b;=(C=22)-(b++);正确答紧:ABD学生答案:ABDV65、以下说法正确的是()。
A、C普甚里有字符串变量B、C语言里没有字符串变量语言里有字符变量D、C语言里设字符变量正确答案:BC学生答案:BCV66、在定义inta[2][3]之后,对a的引用正确的有()。
B、][1>2111][2][0]正确答案:AC67、以下用户标识符,其中台法的是()。
A、returnB、f2_G3C、A3-3D、abc正确答案:BD学生答案:BD×68、关于while语句与do-while语句,以下正确的是().A、while是当型结构B、do-while是直到型结构C、两者有区别D、两者无区别正确答案:ABC学生答案:ABCV69、正确的if语句形式是().A、if(x>y&&xl=y);B、if(x==y)x+=y;C、if(xl=y)scanf("%d",&x)eisescanf(["%d",&y);D、if(x<y)(x++;y++)正确答案:ABD学生答案:ABDV70、能正确表示逻辑关系:"a210”的C语言表达式是()。
1.用π/4≈1-1/3+1/5-1/7+…公式求π的近似值,直到某一项的绝对值小于10-6为止#include <stdio.h>#include<math.h>void main(){ int s;float n,t,pi;t=1;pi=0;n=1.0;s=1;while(fabs(t)>1e-6){ pi=pi+t;n=n+2;s=-s;t=s/n;}pi=pi*4;printf("pi=%10.6f\n",pi);}2.求Fibonacci数列前40个数#include <stdio.h>void main(){long int f1,f2;int i;f1=1;f2=1;for(i=1; i<=20; i++){ printf("%12ld %12ld ",f1,f2);if(i%2==0) printf("\n");f1=f1+f2;f2=f2+f1;}}3.删除字符串中的数字字符,以‘#’作为字符串的结束标志#include <stdio.h>#include <string.h>fun(char *p){char a[100];int i,j,k;for(i=0,j=0;*(p+i)!='#';i++){if(*(p+i)<'0'||*(p+i)>'9')/*(((s1[i]>='a')&&(s1[i]<='z'))||((s1[i]>='A')& &(s1[i]<='Z')))*/{a[j++]=*(p+i);k=j;}}a[k]='\0';strcpy(p,a);}void main(){char s1[100];printf("请输入随意字符:\n");gets(s1);fun(s1);puts(s1);printf("\n");}4.输出10000—20000之间个位数是7的素数个数,并将其中最大的素数返回。
程序设计试题集一、单项选择题1.1.定义一个具有10个元素的整型数组,应当使用代码是A.int a[10]; B.int a[2, 5]; C.int a[]; D.int *a[10];1.2.设int a = 8, b = 7, c = 6, x = 1;执行以下语句后x的值是if (a > 6) if (b > 7) if (c > 8) x = 2; else x = 3;A.0 B.1 C.2 D.31.3.下列代码中,正确的数组定义是① int a[ ] = {“string”}; ② int a[5] = {0, 1, 2, 3, 4, 5};③ char a = {“string”}; ④ char a[ ] = {0, 1, 2, 3, 4, 5};A.① B.② C.③ D.④1.4.字符串”abc\x43\\\np\102q”的长度是A.9 B.12 C.13 D.171.5.执行下列程序后,输出的结果是#define M(a, b) (a) > (b)?(a)+(b):(a)-(b)void main(){ int i = 10, j = 15; printf(“%d\n”, 10*M(i, j)); }A.10 B.25 C.250 D.-501.6.执行下列程序后,输出的结果是#define M(a, b) (a) > (b)?(a):(b)void main(){ int i = 10, j = 5; printf(“%d\n”, M(i, j)*10); }A.10 B.5 C.100 D.1501.7.计算立方数时,不可能引起二义性的宏定义是A. #define S(x) x*x*x B.#define S(x) (x)*(x)*(x)C.#define S(x) (x*x*x) D.#define S(x) ((x)*(x) *(x))1.8.下列代码中,正确的是A. char a[3][ ] = {‘abc’, ‘1’};B. char a[ ][3] = {‘abc’, ‘1’};C. char a[3][ ] = {“ab”, “12”};D. char a[ ][3] = {“ab”, “12”};1.9.设char str1[10] = “ABCDE”, str2[10] = “xyzuvw”;则执行以下语句后的输出结果是printf(“%d”, strlen(strcpy(str1, str2)));A.12 B.11 C.8 D.61.10.以只写方式打开一个二进制文件,应选择的使用方式是A.”a+” B.”w+” C.”rb” D.”wb”1.11.设int x = 8, y, z; 执行y = z = x--; x = y == z后,变量x的值是A.0 B.1 C.8 D.91.12.设变量m ,n ,a ,b ,c ,d均为0,执行(m = a==b)||(n=c==d)后,m ,n的值是A. 0 ,0B. 0 ,1C. 1 ,0D. 1 ,11.13.设int x[ ] = {2, 6, 5, 7, 9, 15, 12}, *p = x;则不能正确引用数组元素的表达式是A.*(p--) B.*(--p) C.*(p++) D.*(++p)1.14.根据变量定义“static int b[5];”,b[4]的值是。
一、单项选择题 (60分〕1、关于建立函数的目的,以下正确的说法是〔〕。
A、提高程序的执行效率B、提高程序的可读性C、減少程序的篇幅D、减少程序文件所占存正确答案:B学生答案:Bv2、以下程序段的输出结果为〔〕。
Int *=3.y=2.printf("%d".(*-=y.**=y+8/5));A、1B、7C、3D、5正确答案:C学生答案:CV3、函数从文件中读入一个字符串,以下正确的表达是〔〕。
A、字符串读入后不会自动参加".0'B、fp是file类型的指针C、fgets函数将从文件中最多读入n-1个字符D、fgets函数将从文件中最多读入n个字符正确答案:C学生答案:CV4、假设有说明.int lj=2,"p=&1',则能完成=赋值功能的语句是〔〕。
A、i="p;B."p=*&);C、i=&j;;D、I=**p;正确答案:B学生答案:Bv5、以下正确的说法是〔〕。
A、用户假设需调用标准库函数,调用前必须重新定义B、用户可以重新定义标准库函数,假设如此,该函数将失去原有含义C、系统根本不允许用户重新定义标准库函数D、用户假设需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调正确答案:B学生答案:Bv6、C语言中,定义构造体的保存字是〔〕。
A、unionB、structC、enumD、typedef正确答案:B学生答案:Bv7、以下语句中,不能实现回车换行的是〔〕。
A、printf("n");B、putchar("n");c、tprintf(stdout,"in");D、正确答案:B学生答案:Bv8、假设有〕."p=a.则输出结果不为5的语句为〔〕。
A、printf("%d","(a+5));B、printf("%d",p[5]);C、printf("%d"."(p+5)):D、printf("%d"."p[5]);正确答案:D学生答案:DV9、以下程序的输出结果为〔〕。
2012-2013学年第二学期
《C++程序设计》上机考试题
质数
质数又称素数,指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。
素数在数论中有着很重要的地位。
编一个程序,从文件读入一个十进制数N,然后判断该数是否是质数。
如果N是质数,则输出1;如果N不是质数,则输出0。
请把结果输出到文件中。
本问题的解决方案不需要使用大于32位的整型。
程序名称:prime.cpp
输入文件(prime.in)
只有一行,该行只有1个整数N
输出文件(prime.out)
输出只有一行,这一行只包含一个整数,表示N是否是质数。
如果N是质数输出1;如果N 不是质数,则输出0。
输入样例
234567833
输出样例
1
关键词统计
当大家需要上网查询资料的时候,自然而然地会进入类似Google或Baidu等提供搜索服务的网站,输入要查找信息的关键词,搜索引擎会在数据库中进行搜寻,如果找到与用户要求内容相符的网站,便采用特殊的算法——通常根据网页中关键词的匹配程度、出现的位置、频次、链接质量等计算出各网页的相关度及排名等级,然后根据关联度高低,按顺序将这些网页链接返回给用户。
你打算暑期到某个搜索网站公司去实习,面试官要求你用C++语言编写一个程序,能迅速准确地发现某个网页(英文网页,只有文字)是否含有某些特定的关键词,并统计出所有关键词出现的次数。
已知每个关键词只含字母(’A’-‘Z’和’a’-‘z’),不区分大小写。
但面试官想测试一下你的编程水平有多高,他把关键词混在一些非字母字符中。
例如:关键词是abroad, 那么如果网页里出现yA B#ro7 a$ 4D8z也算关键词abroad出现一次(关键词的前后可出现字母,也可出现非字母字符,关键词的各字母之间只能出现0个或多个非字母字符)。
程序名称:keyword.cpp
输入文件(keyword.in)
第1行:只有1个正整数N(0< N <=10),表示关键词的个数;
第2行至第N+1行:关键词,一行一个关键词(一个关键词最大长度不超过40);
第N+2行到最后:网页内容
一个网页不会超过2,000字符(包含所有字符)。
网页可能一行或多行,但是每行都不超过80个字符(不包括最后的换行符)。
输出文件(keyword.out)
输出只有一行,这一行只包含一个整数,表示网页中所有关键词出现的次数。
如果整个网页中没有关键词,输出结果为0。
输入样例
2
AbRoad
sTudy
So you’re leaving to sTu d78 y @aBro# Ad! You are about to have the time of your life. For most students,st$u
dying #ab %Ro 9ad is the single most memorable thing they’ll do in their university life.
输出样例
4
超大整数(十进制)
32位整数(十进制)的机器可以表示的整数范围大约是-20亿到20亿之间,这一范围一般不会出现问题。
不过在有些应用中,我们可能要使用更大范围内的整数。
因此,需要创建强大的新的类型,这也是正是C++可以做到的。
1、请创建一个HugeInt类,使其至少具备下列功能:
1)超大整数的最大有效数字位为30位,只用于表示非负整数。
(数据范围0—999999999999999999999999999999【30个9】)
2)创建一个构造函数HugeInt(const char *str),用str所指向的数字字符串实现初始化。
例如:str所指向的字符串可以是“00123”或者是“123”,都代表整数123。
如果str所指向的字符串超过了超大整数表示的有效范围,则取值0。
3)重载运算符‘+’:实现两个超大整数相加。
如果两个超大整数相加的和超过HugeInt 表示的上界,则和取值0。
4)重载运算符‘<<’,用来输出超大整数。
例如:如果超大整数表示的数值是12345,则输出12345。
2、为了方便检验你设计的类,我们提供了测试函数,代码放在main()中,它
以文件hugeint.in的内容为输入,输出结果存放文件hugeint.out中。
请
直接使用main()中的代码,不要另外编写测试程序。
程序名称:hugeint.cpp
HugeInt类的定义与实现要和main()都放在hugeint.cpp中,不要拆成多个文件存放。
输入文件(hugeint.in)
输入文件由多行组成,每行有两个字符串str1和str2,中间用空格分开;
每个字符串只含数字字符[ ‘0’~’9’];str1和str2的长度大于等于1,小于等于40;
str1,str2分别用来初始化左操作数和右操作数,然后计算它们的和,并输出计算结果。
输出文件(h ugeint.out)
和输入文件具有相同的行数,每行只有一个整数,对应输入文件的每行产生的两个操作数的加法运算的结果。
友情提示
可以考虑用一个由数字组成的字符串来表示数据。
如允许的最大长度为30位,则字符数组的长度为30。
如数字123,可表示为:
数组下标29 … 5 4 3 2 1 0
输入样例
91 12
400 999999999999999999999999999786
0012 7
输出样例
103
19
测试代码(请直接使用下列代码,不要另外编写测试代码)
int main()
{
ifstream fin("hugeint.in");
if (!fin)
{
cerr << "输入文件打开失败!";
return -1;
}
ofstream fout("hugeint.out");
if (!fout)
{
cerr << "输出文件打开失败!";
return -1;
}
char str1[41],str2[41];
while( fin >> str1 )
{
fin >> str2;
HugeInt op1(str1);
HugeInt op2(str2);
fout << op1 + op2 << endl; }
fin.close();
fout.close();
return 0;
}。