东南大学C试题_第1页
东南大学C试题_第2页
东南大学C试题_第3页
东南大学C试题_第4页
东南大学C试题_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、东 南 大 学 交 通 学 院 练 习 卷姓名 学号 成绩 一、选择题:(20题,每题1分) 1、有如下定义语句char b5, *p=b;赋值的正确语句是(1) 。a)b=”abcd”;b)*b=”abcd”c)p=”abcd”;d)*p=”abcd”;2 下列选项中等价的是 (2) 。a) int a23=1,2,3,4,5,6与int a2=1,2,3,4,5,6b) int a23=1,2,3与int a3=1,2,3c) int a23=1,2与int a23=(1,2d) int a3=1,2,3,4,5,6与int a23=1,2,3,4,5,6)3、以下关于c+语言中数组的描述

2、正确的是 (3) a数组的大小是固定的,但可以有不同的类型的数组元素b数组的大小是可变的,但所有数组元素的类型必须相同c数组的大小是固定的,所有数组元素的类型必须相同d数组的大小是可变的,可以有不同的类型的数组元素4、设有说明:char a44; 与数组元素a33不等价表示的是 (4) .a.*(a3+3)b. *(*(a+3)+3)c.*&a33 d.(*(*(a+3)+3)5、在执行int a3=1,2,3,4,5,6;语句后,a11的值是 (5) 。a4 b1 c2 d56、为了判断两个字符串sl和s2是否相等,应当使用 (6) 。aif (s1=s2)bif (s1=s2)ci

3、f(strcpy(s1,s2)dif(strcmp(s1,s2)=o)7、在定义int a10;之后,对a的引用正确的是 (7) 。aa10 ba63 ca(6) da10-108、若有定义int*p,x;则语句x=*p+,与_(8)_等价。a. x=*p;p+; b.x=(*p)+; c.x=p;p+; d.x=(*p+);9、设有如下定义struct data int i; double f;char ch; s;结构变量s占用的字节数为 (9) 。a、8 b、13 c、15 d、1710、设内存分配语句int *p=new int ,选择合适的填充使p所指的存储单元赋初值28。 a、(2

4、8) b、28 c、28 d、*2811、有说明语句char *name="newspaper" 则 (11) 可获取串中字符's' a) name0+3 b) *name+3 c) *(name+3) d) name412、在c+语言中,对于存储类型为 (12) 的变量只有在使用它们时才占用内存单元。astatic和auto bregister和staticcregister 和extern dauto和register 13、在一个源文件中定义的全局变量的作用域为 (13) 。a本文件的全部范围 b本程序的全部范围c本函数的全部范围 d从定义该变量的位置

5、开始至本文件结束为止14、当接受用户输入的含空格的字符串时,应使用 (14) 函数。acin() bgets() cgetchar()dcin.getline()15、当数组名作为函数的实参时,它传递给函数的是 (15) a、地址 b、数组名 c、数组元素 d、指针16设函数声明语句中的参数表为(int&a,int&b,im c),函数体中a,b,c三个变量的值都发生变化;主函数中调用此函数的实参表为(x,y,z),调用函数语句执行后,以下叙述正确的是 (16) 。 a、变量x和y的值发生变化 b、变量x和y的值不发生变化 c、变量x、y、z的值都发生变化d、只有变量z的值发生

6、变化17、设有说明:char str1=”copy”, str210, str3=”hijklmn”, *str4, *str5=”abcd”下面不正确的字符串拷贝是(17) 。astrcpy(str2, str1)bstrcpy(str3,str1)cstrcpy(str4,str1) dstrcpy(str5,str1)18、在定义了变量char s=“ab”,*p;后,执行了语句p=s;这时*(p+2)的值是 (18) a.bb.0c.不确定d.字符b的地址19、判断两个字符串s1和s2是否相等,应当使用 (19) 、if (s1=s2) 、if (s1=s2) 、if (strcmp(

7、s1,s2) 、if (!strcmp(s1,s2)20、函数void aaa(char * s,char * t)while(*t+);t-;while(*t+=*s+);的功能是 (20) 。a.求串的长度b.将串s复制到t中c.比较两个串的大小d.将串s与串t连结为一个串二、填空及阅读程序1、若:typedef char* string;string p,s10;则: p和s的数据类型分别是 (1) , (2) 。 2、阅读下列程序,给出以下程序的执行结果。#include<iostream.h>char b="computer"char *a="

8、;computer"void main() int i=0; cout<<*a<<b+1; while(*(a+i) cout<<*(a+i);i+; cout<<'n' cout<<i; while(-i) cout<<(*(b+i); cout<<'n' cout<<&b3<<'n'执行以上程序后,第二行的输出是 (3) ,第三行的输出是 (4) 。3、阅读下列程序,写出运行结果。#include<iostrea

9、mh>void main() int i,j; static int a10=1,1,1,1,1,1,1,1,1,1; for(i=0; i<10;i+) for(j=0;j<i; j+) ai=ai+aj; for(i=2; i<10; i+) cout<<ai<<,; cout<<“n”; (5) 4、阅读下列程序,指出此程序的功能。void f2(int a,int k) int n,t,j; for(j=0;j<k-1;j+) /a for(n=0;n<k-j;n+) if(an<an+1) t=an; an

10、=an+1; an+1=t; void main() int i,x=5,3,6,1,8; f2(x,5); for(i=0;i<5;i+)cout<<xi<<'t' cout<<endl;问题一:主函数中调用函数f2()进行排序,排序的结果一般是使数据按升序或降序排列。 调用函数f2()的排序结果是_(6)_序 问题二:函数f2()中的排序算法可称为_(7)_法 问题三:如果将a行中的j<k-1改为j<2,主函数中输出结果是_(8)_,5、读下列程序,写出运行结果。void f(int a)if(a<0)cout&l

11、t;<“-”; a=-a; cout<< char(a%10+0);if(a=a/10)!=0)f(a);void main()int a=-2574;f(a);cout<<n;a=5647;f(a);cout<<“n”;执行以上程序后,输出结果的第一行是 (9) ;第二行是 (10) 。 三、完善程序1 1、下列函数检查给定的字符串左括号(和右括号)的使用是否合法。判别条件是:左括号(的个数应与右括号)的个数相同;右括号的个数在任何时候均不得超过左括号(的个数;若字符串同时满足上述两个条件,函数返回值1,否则返回值0。int check (char

12、*s) int lf=0;rt=0; while( (1) ) if (*s=( ) lf+; else if(*s=) rt+; if ( (2) ) return 0; ( (3) ); return ( (4) ); / 2、struct nodeint data;struct node *next;完善下列函数,要求在以head为头的链表中将整数y插在结点的值x的结点的后面,如果该链表中没有这种结点,则不做插入操作。void insert(struct node *head,int x,int y)struct node *p,*q;if(head=null)cout<<“

13、list empty!n”;elsep=head;while(p!=null)&&( p->data!=x)(5)if(p->data=x) p=new(6); p->data=y;p->next=q->next; (7);elescout<<x<<“ node not foundn”;3以下函数用于将用户输入的字符串所有小写字母改写为大写字母,并将修改后的字符串输出。(ascii字符中a的值为0x41,a的值为0x61)#include<iostream.h>#define size 20char* char_

14、to_caps(char *pdata)int i=0;while(*(pdata+i)!=0)if(8)*(pdata+i)-=0x20;(9);return(pdata);void main()char pdatasize;cout<<“please input a string:”;cin>>pdata;cout<<”nresult is :”<<(10);)4、函数find用来判断数组a中的数据是升序、降序还是无序。若为升序返回1,若为降序返回2,无序返回3。形参n为数组a中有效整数的个数,数组a从a1an中包含待判断的元素个数。int

15、find(int a,int n)int s,i; if (a1<a2) ( (11) ); else s=2; if (s=1) i=2; while(i<n) if ( (12) ) s=3; break; ( (13) ) ; if (s=2) for (i=2;( (14) );i+) if (ai<ai+1) ( (15) ); break; return s;6下面是一个对10个整型数排序的程序。#include <iostream.h> (16) ;void main() int a10=2,12,4,23,76,45,43,34,1,10; int

16、 *p; sort( (17) ); for (p=a;p<a+10;) cout<<*p+<<t;cout<<endl; return;void sort(int *p,int n) int i,j, (18) ; for (i=0;i<n-1;i+) for( (19) ) if (*(p+i)>*(p+j) (20) ; (21) ; *(p+j)=temp; return; 参考答案选择题1c2d3c4d5d6d7d8a9b10a11c12d13d14d15a16a17bcd18b19d20d填空题1字符指针 2 字符指针数组3 8retupmoc4 puter5 4,8,16,32,64,128,256,5126 降 7 冒泡 8 6 5 8 3 19 -475210 7465完善程序1*s!=0 2 rt>lf3 s+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论