




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计(2) 上 海 交 通 大 学 试 卷(B)( 2008 至 2009 学年 第_一_学期 )班级号_ 学号_ 姓名 课程名称 程序设计 (1) 成绩 ACM试点班上海交通大学C程序设计试卷 2007.1.13一二一。选择填空(每空1分,共20分)1。C+源程序文件的扩展名是: A . DLL B .C C. CPP D .EXE2。若有说明:int a4=0;则下面正确的叙述是 A 只有元素a0可得到初值0 B 数组a中每个元素均可得到初值0 C 数组a中各元素都可得到初值,但其值不一定为0 D。 此语句不正确3。下面关于for循环的正确描述是 A for循环只能用于循环次数已经确定的情况 B for循环是先执行循环体语句,后判断表达式 C 在for循环中,不能用break语句跳出循环体 D for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 4。下面判断正确的是 A char *a=”I Love China”;等价于char *a; *a=”I Love China”; B char str20=“I Love China”;等价于char str20; str=“I Love China”; C char c20=”I Love China”, d20=”I Love China”;等价于char c20=d20=”I Love China”; D。char *s=”I Love China”;等价于char *s; s=”I Love China”;5。以下不正确的说法为 A在不同的函数中可以使用相同名字的变量 B在函数内定义的变量只在本函数范围内有效C在函数内的复合语句中定义的变量在本函数范围内有效 D。形式参数是局部变量题号得分批阅人(流水阅卷教师签名处) 我承诺,我将严格遵守考试纪律。承诺人: 6。以下对结构体变量stu1中成员age的非法引用是 struct student int num; float age; student stu1,*p; p=&stu1; A stu1.age B student.age C p-age D (*p).age 7。以下所列的各函数原型中,正确的是: A void* play(int a, int b); B double play(int a=1, int b);C int, double play(int *a, int b); D double play(int a; int b);8。下列语句正确的是 A。char a=”abc”; B。 int 5x=20; C。char a= 0; D。char a=”abc”;9。函数f声明为void f( int &n),在主程序中定义变量m为 int m=10,则下面调用正确的是 。A。f(*m) B。f(&m) C。f(m) D。 f(10+m)10。若有以下说明: int arr8=8,7,6,5,4,3,2,1,*ptr=arr;则数值为4的表达式是 。A。*ptr+4 B。*(ptr+4) C。*(ptr+16) D。*(ptr+5)11。在C+程序中有如下说明:double location15 9;那么,下列哪个表达式会得到location数组的最后一个元素的值 。A。location158 B。 location149 C。 *( ( *(a + 14) ) + 8 ) D。 (*(a+8)1412。已知 char *str = “Program”; 以下哪个说法是错误的 。A。str7 的值为 0 B。 “Program”的内存空间是静态分配的C。“Program”占7个字符的内存空间 D。strlen(str) 等于 713。当调用函数时,实参是一个数组名,则向函数传送的是 。A。数组的首地址B。 数组的长度C。数组每一个元素的地址 D。 数组每个元素中的值14。下面的循环体执行的次数与其它不同的是 。A。 i = 0; while( +i = 100) cout i ; B。 for( i = 0; i 100; i+ ) cout i = 1; i- ) cout i ; D。 i = 100; do cout i 0);15。设有以下语句:char strl=string,str28,*str3, *str4=str1;则_不是对库函数的正确调用。A。strcpy(strl,HELLOl);B。strcpy(str2,HELL02);C。strcpy(str4, HELL04);D。strcpy(str3,HELL03); 16。指针变量p的基类型为double,并已指向一连续存储区,若p中当前的地址值为65490,则在VC6.0中执行p+后,p中的值为 。A。65490B。65492C。65494D。6549817。若有定义:char ch =”abcde”,则strlen(ch)的值为 ,数组ch在内存占用的空间为 字节,数组ch的下标的合法范围为从 到 。 A。0 B。4 C。5 D。6二。程序理解(每题5分,共40分)1、写出运行结果void reFunction( char b, int current, int size)if ( current size )reFunction(b, current+1, size);cout bcurrent ;int main()const int arraySize = 8;char arrarraySize = a, b, c, d, e, f, g, h;reFunction(arr, 0, arraySize);cout endl;return 0;2、写出下面函数的功能bool WhatIsThis(const char *s1, const char *s2)for( ; *s1 != 0 & s2 != 0; s1+,s2+ ) if ( *s1 != *s2 ) return false; if (s1 = 0 & s2 = 0) return true; else return false;3、写出运行结果int &refFunction( int &a) static int c = 15; a += c+; cout a c ; return a;int main() int a = 10, &b = a; refFunction(a) = 20;cout a ;refFunction(+b) = 40;cout a str1; for ( i = 0; str1 i != 0; +i ) str2i = str1i a + A ; str2 i = 0; cout str2 endl; return 0; 5。写出下面函数的功能(要求写出函数的类型,函数的输入参数和返回值的含义) template T max(T x, int n) int i; T temp = x0; for(i=1; in; i+) if(temp id-101, ID);void foo(studentT *p, int num, studentInfoT item)switch(item) case NAME: ; break; case ID: coutpnum.id; break; case SCORE: coutpnum.score; break; default: ;coutendl;7。有以下程序:int main(int argc,char * argv) int i, len = 0;for(i=1; iargc; i+=2) len += strlen(argvi);cout len; return 0;经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行: ex abcd efg h33 k44执行后输出结果是什么?8。写出运行结果int fun(int *a, int size)int max = 0, i; for (i = 0; i amax) max = i; return max;double fun(double *a, int size)double max = 0; for (int i = 0; i max) max = ai; return max;int main()int a = 3,7,2, 9,1, 5 ,0,8,7,4; double b = 3.3, 7.7, 9,9, 5.5, 4.4, 8.8, 1.1, 2.2, 0, 6.6; cout max(a, 10) endl; cout max(d, 10) endl;三。程序填空(每空1分,共20分)1、 完成下面程序,使得程序输出结果为: a=45 b=56 void swap(_ _)int tmp; ; ; ;int main ()int a = 56, b = 45;swap( );cout a = a b = b endl;return 0;2、 求 1 + 1/1!+1/2!+1/3!+1/20! #include using namespace std; int main() double e = ;double t = ; int n; for (n=1; ; n+) ; ; cout “1+1/1!+1/2!+1/3!+1/20!” e endl; return 0; 3。完成二分查找程序:对一个有序数组,首先匹配中间位置的元素,如匹配成功,则返回该中间位置的下标值;否则,如待查关键字大于中间元素,抛开前面的元素,从中间元素的下一元素到数组尾部范围重复以上匹配;如待查关键字小于中间元素,抛开后面的元素,从数组首部到中间元素的前一元素范围重复以上匹配;如果查找失败,则返回-1。int BinarySearch( int A, int key, int n )int low = 0; / 下界结点的下标 int high = n-1 ; / 上界结点的下标int mid; / 中间结点的下标 while ( ) ; if ( Amid = key ) ; else if ( key Amid ) ; else ; ; 4。下面的程序是实现一个猜硬币的游戏。计算机扔硬币后让用户猜正反面,用户输入0或者1分别表示正面(HEAD)或者反面(TAIL)。每次用户猜后,计算机给出判断是否正确,游戏采用三局两胜制判断最终胜负。请补充完整所缺语句,每空一条语句。char GetAGuess();char ThrowCoin();int main()int coin,i;int hit, miss; /hit:猜对的次数,miss:猜错的次数 ;hit = miss = ;for(i=0;i3;i+) coin = ThrowCoin();if(coin=GetAGuess()coutYou are rightendl;hit+;elsecoutYou are wrongendl;miss+; ;cout (hit=2) ? You won this round! : You lose this round) endl; return 0;char ThrowCoin() ;char GetAGuess()char guess20;while(true)cout1)coutYour guess must be a single charactor. Try again.n;else if (guess0 = 0 | gu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 时间状语从句课件导入
- 护士带教师资培训
- 网络暴力幼儿课件
- 创意画冲浪课件
- 时尚表演基础知识培训课件
- 二零二五年度珠宝行业知识产权保护合同
- 二零二五年钢筋工程新技术研发与应用合同
- 2025版智慧社区智能家居设计代理合同
- 二零二五年调味品品牌孵化与推广合作协议
- 二零二五年度心理咨询劳务服务居间合同
- 气道异物梗阻现场急救
- 实验室6s管理制度
- 模具部奖惩管理制度
- 2025年新高考1卷(新课标Ⅰ卷)英语试卷
- 2025年网络安全与信息化考试试题及答案
- 《基于单元的高中英语项目式学习设计研究》
- 应急救援互助合同协议书
- (高清版)DG∕TJ 08-2284-2018 城市道路和桥梁数据采集标准
- 2025年北京市海淀区高三二模英语试卷(含答案)
- 医院改建可行性研究报告
- 2025保定市涞水县涞水镇社区工作者考试真题
评论
0/150
提交评论