哈工大秋《C 程序设计》考试题A
哈理工C 考试题库之5(可直接的打印的).
若有以下数组a,数组元素:a[0]~a[9],其值为9 4 12 8 2 10 7 5 1 3该数组中下标最小的元素名字是【1】.答案:1. a[0]〖第2题〗『填空』(1分字符串的结束标志是【1】.答案:1. \0 或 '\0' 或 0〖第3题〗『填空』(1分设a,b,c,t为整型变量,初值为a=3,b=4,c=5,执行完语句t=!(a+b+c-1&&b+c/2后,t的值是【1】.答案:1. 1〖第4题〗『填空』(1分在面向对象程序设计中,基类的构造函数和【1】函数不能被继承.答案:1. 析构〖第5题〗『填空』(1分写出表达式 1.234&&5.982 的值是【1】.答案:1. 1〖第6题〗『填空』(1分【1】称为文件包含命令,其意义是把指定的文件包含到本程序中,成为程序的一部分. 答案:1. #include〖第7题〗『填空』(1分C++中,流对象【1】称为标准输出设备.答案:1. coutC++程序在执行中,不检查数组下标是否【1】.答案:1. 越界〖第9题〗『填空』(1分C++语言中,数组名是一个不可变的【1】常量,不能对它进行自加自减和赋值运算. 答案:1. 地址〖第10题〗『填空』(1分若所用变量均已正确定义,则执行下面程序段后的值是【1】.for(i=0 ; i<2 ; i++ cout<<"YES";cout<答案:1. YESYES〖第11题〗『填空』(1分已知 i=5,写出语句 i-=18; 执行后整型变量 i 的值是【1】.答案:1. -13〖第12题〗『填空』(1分#define A(n 2*n+1,则表达式A(2+3的值是【1】答案:1. 8〖第13题〗『填空』(1分关键字【1】用于进行动态内存分配,关键字delete用于释放所分配的内存.答案:1. new〖第14题〗『填空』(1分C++语言表达式!(3<6||(4<9的值是【1】.答案:1. 1〖第15题〗『填空』(1分设a、b、c为整型数, 且a=2、b=3、c=4, 则执行完以下语句:a*=16+(b++-(++c;后,a的值是【1】.答案:1. 28〖第16题〗『填空』(1分若输入字符串:abcde<回车>,则以下while循环体将执行【1】次.while((ch=cin.get(=='e' cout<<"*"<答案:1. 0〖第17题〗『填空』(1分在C++中,类及由类所定义的对象二者中,【1】占内存空间.答案:1. 对象〖第18题〗『填空』(1分有下列程序段,执行后的输出结果是【1】.int a=3, b=5;int max(int a, int b{ int c;c=a>b? a:b;return c;}void main({ int a=8;cout<}答案:1. 8〖第19题〗『填空』(1分一个C源程序中至少应包括一个【1】函数,它是C程序中唯一可以直接执行的函数,其他函数都是直... 答案:1. main 或 main( 或主〖第20题〗『填空』(1分已知a=13,b=6, a&&b的十进制数值为【1】.答案:1. 1〖第1题〗『判断』(1分单重继承是指派生类只有一个基类的情况.答案:Y〖第2题〗『判断』(1分break语句只能用在循环语句中.答案:N〖第3题〗『判断』(1分定义在类体内的成员函数是内联函数,定义在类体外的成员函数不能是内联函数. 答案:N〖第4题〗『判断』(1分x*=y+8 等价于 x=x*(y+8.答案:Y〖第5题〗『判断』(1分指针函数是指函数的返回值为指针的函数.答案:Y〖第6题〗『判断』(1分类型标识符函数名(参数表列{函数体}此函数是内联函数.答案:N〖第7题〗『判断』(1分char *p ="PCGAME";是定义初始化指针变量,指针变量的值是一个字符串.答案:N〖第8题〗『判断』(1分int i=20;switch(i/10{case 2:cout<<"A";case 1:cout<<"B";}的输出结果为A.答案:N〖第9题〗『判断』(1分数组只有一个下标,称为一维数组.答案:Y〖第10题〗『判断』(1分char ch[8]= "student";cout << strlen (ch; 结果为8.答案:N〖第11题〗『判断』(1分若有宏定义:#define S(a,b a+b 此宏定义是错误的.答案:N〖第12题〗『判断』(1分int *p=null;是正确的定义.答案:N〖第13题〗『判断』(1分一维字符数组的输入:char str[22] ;cin>> str;答案:Y〖第14题〗『判断』(1分char ch1[ ]={"student"}; 字符数组ch1长度为8,存储的是字符串答案:Y〖第15题〗『判断』(1分int i表示取变量i的整数部分.答案:N〖第16题〗『判断』(1分不能对字符数组整体进行赋值,只能给各个元素赋值,而字符指针变量可以直接赋值.答案:Y〖第17题〗『判断』(1分struct是声明结构体类型时所必须使用的关键字,可以省略;答案:N〖第18题〗『判断』(1分char ch2[ ]={'s ', 't ' , 'u ', 'd ', 'e ', 'n ', ' t' }; 字符数组ch2长度为7,存储... 答案:Y〖第19题〗『判断』(1分对二维数组正确定义的形式是:int a(2(3;答案:N求字符串长度函数strlen (答案:Y〖第1题〗『单项选择』(1分两个指针变量不可以(.A:相加B:比较C:相减D:指向同一地址答案:A〖第2题〗『单项选择』(1分C++语言中,char类型数据占(.A:1个字节B:2个字节C:4个字节D:8个字节答案:A〖第3题〗『单项选择』(1分以下能正确定义数组并正确赋初值的语句是(. A:int N=5,b[N][N];B:int a[1][2]={{1},{3}};C:int c[2][]={{1,2},{3,4}};D:int d[3][2]={{1,2},{3,4}};答案:D〖第4题〗『单项选择』(1分求平方根函数的函数名为(.A:cosB:absC:powD:sqrt答案:D下列程序段的输出结果为(.#include void main({ int x=3,y=2; cout<<(x-=y,x*=y+8/5;}A:1B:7C:3D:5答案:C〖第6题〗『单项选择』(1分以下不是无限循环的语句为(.A:for(y=0,x=1;x>++y;x=i++ i=x;B:for(;;x++=i;C:while(1{x++;}D:for(i=10;;i-- sum+=i;答案:A〖第7题〗『单项选择』(1分若以下变量均是整型,且num=sum=7;则计算表达式sum=num++,sum++,++num后sum的值为(. A:7B:8C:9D:10答案:B〖第8题〗『单项选择』(1分以下语句中,循环次数不为10次的语句是(.A:for(i=1;i<10;i++;B:i=1;do{i++;}while(i<=10;C:i=10;while(i>0{--i;}D:for(i=10;i>0;i--;答案:A〖第9题〗『单项选择』(1分函数返回值的类型是由(决定的.A:return语句中表达式的类型B:函数定义时的类型C:调用函数时的调用语句D:系统根据结果答案:B〖第10题〗『单项选择』(1分下面说明不正确的是(.A:char a[10]="china";B:char a[10],*p=a;p="china"C:char *a;a="china";D:char a[10],*p;p=a="china"答案:D〖第11题〗『单项选择』(1分下列字符序列中,是C++语言关键字的是(.A:sizeofB:printfC:cinD:sqrt答案:A〖第12题〗『单项选择』(1分double x;cin>>x;不可以赋值给x变量的常量是(.A:123B:100000C:3.14D:"abc"答案:D〖第13题〗『单项选择』(1分int a[10];给数组a的所有元素分别赋值为1、2、3、……的语句是(. A:for(i=1;i<11;i++a[i]=i;B:for(i=1;i<11;i++a[i-1]=i;C:for(i=1;i<11;i++a[i+1]=i;D:for(i=1;i<11;i++a[0]=1;答案:B〖第14题〗『单项选择』(1分设char ch1='A',ch2='a'; 表达式ch2==ch1+32?ch1:ch1+32的值是(. A:0B:1C:a'D:A'答案:D〖第15题〗『单项选择』(1分具有相同类型的指针变量p与数组a,不能进行的操作是(.A:p=a;B:*p=a[0];C:p=&a[0];D:p=&a;答案:D〖第16题〗『单项选择』(1分在以下给出的表达式中,与 do--while(E语句中的(E不等价的表达式是(.A:(!E==0B:(E>0||E<0C:(E==0D:(E!=0答案:C〖第17题〗『单项选择』(1分以下程序的输出结果是(.#include void main({ char s[]="123",*p; p=s; cout<<*p++<A:123B:1C:3D:321答案:B〖第18题〗『单项选择』(1分下列字符序列中,不可用作C++语言标识符的是(.A:b70B:#abC:symbolD:a_1答案:B〖第19题〗『单项选择』(1分下列的调用方式(是引用调用.A:形参和对应的实参都是变量名B:形参是指针,对应的实参是地址值C:形参是引用,对应的实参是变量名D:形参是变量名,对应的实参是地址值答案:C〖第20题〗『单项选择』(1分以下标识符中,不能作为合法的C用户定义标识符的是(. A:a3_b3B:voidC:_123D:IF答案:B〖第21题〗『单项选择』(1分系统的标准输入文件是指(.A:键盘B:显示器C:软盘D:硬盘答案:A〖第22题〗『单项选择』(1分设有定义: char str[100]; 当执行 cin>>str; 后,从键盘输入:″C++ programming windows″... A:C++B:C++ programmingC:windowsD:C++ programming windows答案:A〖第23题〗『单项选择』(1分下列表达式中,可作为C++合法表达式的是(.A:[3,2,1,0]B:(3,2,1,0C:3=2=1=0D:3/2/1/0答案:B〖第24题〗『单项选择』(1分若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是(.A:p=q;B:*p=*q;C:n=*q;D:p=n;答案:D〖第25题〗『单项选择』(1分对以下说明语句 int a[10]={6,7,8,9,10}; 的正确理解是(.A:将5个初值依次赋给a[1]至a[5]B:将5个初值依次赋给a[0]至a[4]C:将5个初值依次赋给a[6]至a[10]D:因为数组长度与初值的个数不相同,所以此语句不正确答案:B〖第26题〗『单项选择』(1分以下正确的说法是(.A:用户若需调用标准库函数,调用前必须重新定义B:用户可以重新定义标准库函数,若如此,该函数将失去原有含义C:系统根本不允许用户重新定义标准库函数D:用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系.. 答案:B〖第27题〗『单项选择』(1分以下描述中正确的是(.A:由于 do-while 循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句B:do-while 循环由do开始,用while结束,在 while(表达式后面不能写分号C:在 do-while 循环体中,一定要有能使 while 后面表达式的值变为零("假"的操作D:do-while 循环中,根据情况可以省略 while答案:C〖第28题〗『单项选择』(1分以下对C++语言函数的描述中,正确的是(.A:C++程序必须由一个或一个以上的函数组成B:C函数既可以嵌套定义又可以递归调用C:函数必须有返回值,否则不能使用函数D:C++程序中有调用关系的所有函数必须放在同一个程序文件中答案:A〖第29题〗『单项选择』(1分下列语句的结果是(.#include void main({ int j; j=3; cout<<++j; cout<<","<A:3,3B:3,4C:4,3D:4,4答案:D〖第30题〗『单项选择』(1分关于return语句,下列正确的说法是(.A:在主函数和其他函数中均可出现B:必须在每个函数中出现C:可以在同一个函数中出现多次D:只能在除主函数之外的函数中出现一次答案:C〖第1题〗『程序填空』(8分/*------------------------------------------------------- 【程序填空】--------------------------------------------------------- 题目:输出100到1000之间的各位数字之和能被15整除的所有数,输出时每10个一行。
专升本c语言程序设计试题及答案
专升本c语言程序设计试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列关于C语言函数的描述,哪个是正确的?A. 函数可以没有返回值B. 函数不能有多个返回值C. 函数必须有返回值D. 函数不能有参数答案:A3. 在C语言中,以下哪个运算符用于计算两个整数的和?A. %B. +C. ==D. &&答案:B4. C语言中,以下哪个关键字用于定义一个指针?A. intB. floatC. charD. *答案:D5. 在C语言中,以下哪个选项是正确的注释方式?A. // 这是注释B. /* 这是注释 */C. // 这是注释/* 这是注释 */D. // 这是注释/* 这是注释 */答案:B6. 下列关于C语言数组的描述,哪个是错误的?A. 数组可以是多维的B. 数组下标从0开始C. 数组的大小在编译时确定D. 数组可以动态分配答案:D7. 在C语言中,以下哪个选项是正确的文件操作函数?A. fopenB. fcloseC. fprintfD. All of the above答案:D8. C语言中,以下哪个选项是正确的字符串定义方式?A. char str[] = "Hello";B. char str[5] = "Hello";C. char str[] = {'H', 'e', 'l', 'l', 'o'};D. All of the above答案:D9. 在C语言中,以下哪个选项是正确的条件语句?A. if (condition)B. switch (condition)C. case (condition)D. All of the above答案:A10. 下列关于C语言循环的描述,哪个是正确的?A. for循环可以嵌套B. while循环不能嵌套C. do-while循环至少执行一次D. All of the above答案:C二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量的正确语法是:___________。
哈工大2003秋《C++ 程序设计》考试题-A
哈工大 2003 年 秋 季学期《C++程序设计》试题(A一、 选择填空题(共16分,每空一分)。
1. 面向对象的程序设计方法(可用各种语言实现,如C++、Java 等)具有三大特性,他们分别是 , , 。
2. 已知m = 3, 执行m++;后,表达式的值是 ,m 的值是 ,执行++m ;后,表达式的值是 ,m 的值是 。
3. 已知m = 4, n = 5,则执行语句m > n ? m++ : n++;后,表达式的值是 。
4. 循环语句while(int i = 0) { i--; } 执行的循环次数是 次;语句for(int i(0), j(10); i = j = 10; i++, j--) { ; } 执行的循环次数是 次。
5. 外部静态类变量的作用域是 级的,定义时必须 加说明符。
6. 请阅读下面这段描述,并回答后面的问题:(4分)All nonstatic member functions can use the this keyword, which is a const (nonmodifiable)pointer to the object for which the function was called. Member data is addressed by evaluating the expression this –>member-name (although this technique is seldom used). In member functions, using a member name in an expression implicitly uses this –>member-name to select the correct function or data member. 问题:(1)在静态成员函数中是否可以使用this 关键字?为什么?(2)是否可以将某个对象的地址值赋给this 关键字?为什么呢?二、 请分析下列程序,并回答问题(共40分)。
C语言程序设计试题及答案完整版
C语言复习资料5元必须清楚的:1)程序结构是三种: 顺序结构, 循环结构(三个循环结构), 选择结构(if 和switch)2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。
3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址.4)bit是位是指为0 或者1。
byte 是指字节, 一个字节= 八个位.5)一定要记住二进制如何划成十进制。
概念常考到的:1、编译预处理不是C语言的一部分,不再运行时间。
C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。
2、每个C语言程序中main函数是有且只有一个。
3、在函数中不可以再定义函数。
4、算法的是一定要有输出的,他可以没有输入。
5、break可用于循环结构和switch语句。
6、逗号运算符的级别最低。
第一章1)合法的用户标识符考查:合法的要求是由字母,数字,下划线组成。
有其它元素就错了。
并且第一个必须为字母或则是下划线。
第一个为数字就错了。
关键字不可以作为用户标识符号。
main define scanf printf 都不是关键字。
迷惑你的地方If是可以做为用户标识符。
因为If中的第一个字母大写了,所以不是关键字。
2)实型数据的合法形式:2.333e-1 就是合法的,且数据是2.333×10-1。
考试口诀:e前e后必有数,e后必为整数。
.3)字符数据的合法形式::'1' 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。
'0' 的ASCII数值表示为48,'a' 的ASCII数值是97,'A'的ASCII数值是65。
4)整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节:考试时候一般会说,在16位编译系统,或者是32位系统。
碰到这种情况,不要去管,一样做题。
掌握整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节就可以了。
C语言程序设计期末笔试试卷及答案
哈尔滨工业大学(威海)2011/2012学年春季学期C 语言程序设计 笔试试题(A 卷)题号 一二三四五六笔试(70%) 综合 (30%) 总分分数1. 笔试卷面总分100分,取卷面成绩的70%计入总分;2. 综合成绩为平时成绩(10%)和实验成绩(20%)之和,占总分的30%;3. 答题时禁止拆开试卷钉,试卷背面即为草稿纸;4. 答题时间105分钟。
一、单项选择题。
请把答案填入下面框中,不允许出框线。
(本题16分,每小题1分)题号 1 2 3 4 5 6 7 8 答案 题号 9 10 11 12 13 14 15 16 答案1. 下面程序的输出是______。
main(){ int x=10,y=3;printf("%d\n",y=x/y); }A) 0 B) 1 C) 3 D) 不确定的值 2. 下列函数的功能是______。
int fun1(char *x) { char *y = x; while(*y++); return(y-x-1); }A) 求字符串的长度 B) 将字符串X 连接到字符串Y 后面 C) 将字符串X 复制到字符串Y D) 比较两个字符串的大小号学名姓注意行为规范 遵守考试纪律3.以下对C语言函数的有关描述中,正确的是______。
A) C程序中有调用关系的所有函数必须放在同一个源程序文件中B) C函数既可以嵌套定义又可以递归调用C) 调用函数时,实参的值传送给形参D) 函数必须有返回值4.若用数组名作为函数调用的实参,传递给形参的是______。
A) 数组的首地址B) 数组第一个元素的值C) 数组中全部元素的值D) 数组元素的个数5.若有以下定义,则p+5表示_______.int a[10],*p=a;A) 元素a[5]的地址B) 元素a[5]的值C) 元素a[6]的地址D) 元素a[6]的值6.以下选项中,与k=n++完全等价的表达式是_______。
哈工大2005秋《C++ 程序设计》考试题-A
哈工大 2005 年 秋 季学期《C++程序设计》试题(A 卷)考试时间 120 分钟 满分 70题号 一 二 三 四 五 总分 实验(20)平时(10)总成绩 分数一、 填空题。
(共20分,每空1分)1. 面向对象的程序设计方法(可用各种语言实现,如C++、Java 、C#等)具有三大特性,它们分别是 , , 。
2. 已知m = 4, 执行m++;后,表达式的值是 ,m 的值是 ,执行++m ;后,表达式的值是 ,m 的值是 。
3. 已知m = 3, n = 2,则执行语句m > n ? m++ : ++n ,m++,m+n ;后,表达式的值是 。
4. 循环语句while(int i = 0) { i--; } 执行的循环次数是 次;语句for(int i(0), j(0); i = j = 1; i++, j--) { ; } 执行的循环次数是 次。
5. 为了使函数能够返回两个或者更多的值,可将形参设置为下列两种方式,它们分别 是 或 ,如果希望实参不被修改,那么需要对形参使用关键字 限制。
6.定义在类体外的函数,如果希望成为内联函数,则必须在类体内的声明中用关键 字 标识;运算符的重载必须用关键字 标识。
7.在C++中,类的继承方式有三种,需要用关键字 、 和 来定义。
默认继承方式为 。
8.在C++中,定义友元类或者友元函数必须使用关键字 。
二、 判断题,正确的请打√,错误的请打×。
(共10分,每题1分)1. 编译C++源程序的过程中,出现了警告错误,也可以生成可执行文件。
( )2. C++中,使用#define 定义的常量必须给出类型说明,而使用const 给出的常量不用给出类型说明。
( )3. 表达式的值的类型只取决于运算符,与操作数无关。
( )4. break 语句可以出现在各种不同循环语句的循环体中,continue 语句只能出现在循环体中。
( )班号 学号 姓名5. 函数没有返回值时,可以不加任何类型的说明符;任何一个函数都可以设置默认参数,但是不允许将一个函数的所有参数设置为默认参数。
哈工大C语言程序设计A卷答案
for(n=10;n>1;n--)
s+=1/n;s += 1.0/n或s += (float)1/n2分
printf("%6.4f\n",s);
}
2.下面函数Squeeቤተ መጻሕፍቲ ባይዱ()的功能是删除字符串s中所出现的与变量c相同的字符。(本小题6分)
一、单项选择题(本题16分,每小题2分)
题号
1
2
3
4
5
6
7
8
答案
B
D
C
A
B
B
A
C
二、填空题。(本题20分,每空1分)
题号
答案
题号
答案
1
p=*a
11
h=q->next
2
*a+12
12
free(q)
3
求字符串长度
13
026
4
(int)
14
#include <stdio.h>
5
intpart
15
FILE *
题号
1
2
3
4
5
6
7
8
答案
3
13↙
2
4
1,6
un,g
here,ve
51,30
&#
四、根据功能描述改正程序中的错误。不得增行或删行,不得更改程序结构。(本题10分)
1.要求以下程序的功能是计算1+1/2+1/3+……+1/10的和。(本小题4分)
#include <stdio.h>
程序设计试题及答案
程序设计试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. returnD. function答案:A2. 下列哪个选项是合法的C语言变量名?A. 2variableB. variable-nameC. variable#nameD. variable_name答案:D3. 在C语言中,以下哪个语句用于结束一个循环?A. continueB. breakC. exitD. return答案:B4. 以下哪个选项是C语言中的条件语句?A. ifB. switchC. forD. while答案:A5. 在C语言中,数组的索引是从哪个数字开始的?A. 0B. 1C. -1D. 随机数答案:A6. 以下哪个是C语言中的标准输入输出库?A. <iostream>B. <stdio.h>C. <iostream.h>D. <stdio>答案:B7. 在C语言中,以下哪个函数用于计算两个数的和?A. pow()B. sqrt()C. abs()D. sum()答案:D(注意:sum()不是C语言标准库函数,这里假设为自定义函数)8. 以下哪个选项是C语言中的循环结构?A. if-elseB. switch-caseC. for, while, do-whileD. try-catch答案:C9. 在C语言中,以下哪个关键字用于定义一个结构体?A. classB. structC. unionD. enum答案:B10. 下列哪个选项是C语言中的位操作符?A. &&B. ||C. &D. ++答案:C二、填空题(每题2分,共20分)11. 在C语言中,使用________关键字可以定义一个指针。
答案:int* 或者 *(具体类型根据上下文)12. 一个C语言程序的执行从________函数开始。
哈工大2010秋-《C++与数据结构》A(B5)
a) b)
为这 8 个字母设计 Huffman 编码,并画出其相应的 Huffman 树; 设 Huffman 树中每个结点有三个域: lChild 、 rChild 和 element ,试设计一个递归算法 【要求】 :如果采用非递归算法,将视为无效;必须用 求该 Huffman 树的带权路径长度。 C++语言给出该递归算法对应的函数说明及实现。
第 4 页 (共 10 页)
试 题: 《高级语言程序设计与数据结构》 (A 卷) 班号:
姓名:
4. (11 分)请分别回答下列问题: a) b)
请简述 C++语言中 const 关键字、类型适应的常见用法及注意事项; (6 分) 以 C++为例,请简述你对面向对象的程序设计中多态性的理解。 (5 分)
M 1 M K 个元素是
。
5. 最大容量为 N 的循环队列,队尾指针是 rear ,队首指针为 front ,则队满的条件
是 。 。
6. 已知模式串 S ' ababaabab ' ,则其 next 数组值为
7. 设有数组 A i, j , 数组的每个元素长度为 3 字节,i 的值为 1 到 8, j 的值为 1 到 10,
p , p , p , , p ,则由序列 1, 2, 3, , n 可通过一个栈得到序列 p1 , p2 , p3 , , pn 。
1 2 3 n
第 2 页 (共 10 页)
试 题: 《高级语言程序设计与数据结构》 (A 卷) 班号:
姓名:
2. (20 分)已知某带权无向图的邻接矩阵三元组压缩存储如下图(本三元组压缩存储中,对于
哈理工C语言试题
哈尔滨理工大学Array 2007-2008学年第一学期考试试题A卷考试科目:结构化程序设计C 考试时间:120分钟试卷总分100分一、选择题1. 2. 3. 4. 5.6. 7. 8. 9. 10.11. 12. 13. 14. 15.16. 17. 18. 19. 20.二、填空题1.2.3.4.5.6.7.8.三、阅读程序,写出运行结果1. 2.3. 4.5. 6.四、程序设计1.2.3.哈尔滨理工大学2007-2008学年第一学期考试试题A 卷答案填在答题卡上一、选择题(在每个小题四个备选答案中选出一个正确答案)(本大题共20小题,每小题1分,总计20分)1.若有程序段:int i=2,j;j=i++;printf(“%d,%d”,++i,j);该程序段的输出结果是______[A] 3,2 [B] 4,3 [C] 3,3 [D] 4,22.double x,y;表达式x=1,y=x+3/2的值是______[A] 1 [B] 2 [C] 2.0 [D] 2.53.若变量已正确定义并赋值,表达式______不符合C语言语法。
[A] a*b/c;[B] 3.14%2[C] 2, b [D] a/b/c4.对于以下的变量定义,表达式_____不符合C语言语法。
struct node { int len;char *pk;} x = {2, "right"}, *p = &x;[A] p->pk[B] *p.pk [C] *p->pk [D] *x.pk5.有如下程序int func(int a,int b){ return(a+b);}main(){ int x=2,y=5,z=8,r;r=func(func(x,y),z);printf(“%\d\n”,r);}该程序的输出的结果是_____[A] 12 [B] 13 [C] 14 [D] 156.若在定义语句int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是______[A]scanf(“%d”,a,b,c) [B]scanf(“%d%d%d”,a,b,c) [C] scanf(“%d”,p) [D] scanf(“%d”,&p) 7.若变量已正确定义,有以下程序段i=0;do printf(“%d”,i); while(i++);printf(“%d\n”,i);[A]0,0 [B]0,1 [C]1,1 [D]程序进入无限循环8.若有定义语句:int a[2][3],*p[3];则以下语句中正确的是________[A]p=a [B]p[0]=a [C]p[0]=&a[1][2] [D]p[1]=&a系:软件学院软件工程出题教师郭红、张淑丽、王春英系主任:9.有以下程序段int k=0while(k=1)k++;while 循环执行的次数是______[A]无限次[B]有语法错,不能执行[C]一次也不执行[D]执行1次10.在C语言中,共用体类型变量在程序运行期间_______[A] 所有成员一直驻留在内存中[B] 只有一个成员驻留在内存中[C] 部分成员驻留在内存中[D] 没有成员驻留在内存中11.下面程序段的运行结果是:long fun( int n){ long s;if(n= =1 || n= =2) s=2;else s=n-fun(n-1);return s;}main(){ printf(“%ld\n”, fun(3)); }[A]1 [B]2 [C] 3 [D] 412.设有定义:int a=1,b=2,c=4;则以下选项中值为0的表达式是_____[A] (!a= =1)&&(!b= =0) [B] (a<b)&&!c||1 [C] a&&b [D] a|| (b+b)&&(c-a) 13.若t为double类型,则表达式:t=1,t+5,t++的值是______[A]1 [B]6.0 [C] 2.0 [D] 1.014.设变量定义为“int x, *p=&x;”,则&*p相当于_____。
哈工大2003-2006年高级语言程序设计 考试题答案
哈工大2003年春季学期C语言考试题参考答案一、填空题:(24分)(1) 将变量a的地址存入 (9) float a[10]指针变量p中(2) 自动变量 (10) j<10(3) 7 (11) j<=8(4) &x,&y (12) k<=9-j(5) float *x,*y (13) a[k]>a[k+1](6) *x (14) a[k]=a[k+1](7) *x=*y (15) j<=9(8) *y=temp (16) j%5==0二、单选题:(20分)1、B2、A3、 D4、 B5、 D6、D7、D8、D9、A 10、A三、判断题:(16分)1、√2、√3、4、√5、 6、 7、√ 8、四、写出程序运行结果(20分)1、 a=8,x=1252、 adb=1,y=1 abcdefghimnohino3、04、a=61 a=723五、编程:1、main(){int a[3][4], i,j, max, m,n;for (i=0; i<3; i++){for(j=0 ;j<4 ;j++)scanf("%d",&a[n]);}max = a[0][0];m= n = 0;for (i=0; i<3; i++){for(j=0 ;j<4 ;j++)if (max<a[i][j]){max = a[i][j];m = i ;n=j ;}}printf("max=%d\n",max);printf("m=%d\tn=%d\n",m,n);2、#include <stdio.h>main(){int x,n,tt,f1(int int);scanf(“%d,%d”,&x,&n);tt=f1(x,n);printf(“%d”,tt);}int f1(int x,int y){int temp=1,I;for(I=1;I<=y;I++)temp*=x;return(tmp);}哈工大2002/2003学年秋季学期 C语言试题答案一、选择题1、D,2、B,3、A,4、B,5、A,6、A,7、D,8、D,9、B, 10、B二、给出下列程序的运行结果1、17,1022、13.7000003、d=204、135、s=12346、10三、阅读程序,在标有下滑线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。
2022年哈尔滨工程大学公共课《C语言》科目期末试卷A(有答案)
2022年哈尔滨工程大学公共课《C语言》科目期末试卷A(有答案)一、填空题1、设x为无符号整数。
表达式x^(~(~0<<n)<<(p+1-n)))的作用是将x 中从第p位开始的n位求反(1变0,0变1),其他位不变。
请按表达式的求值顺序写出分解步骤,并解释含义。
__________________________________2、C语言源程序文件的后缀是;经过编译后,生成文件的后缀是;经过连接后,生成文件的后缀是3、在C语言中,输入操作是由库函数________完成的,输出操作是由库函数________完成的。
4、若a是int型变量,且a的初值为6,则执行表达式a+=a-=a*a后a的值为_______5、已知字母a的ASCIl码为十进制数97,且设ch为字符型变量,则表达式ch='a'+'8'-3'的值为_______。
6、设main函数的说明为:int main(int argc,char*argv[]),且有命令行为:FILE1123<回车>,则argc的值是_______,argv[1]的值是_______。
7、下面add函数的功能是求两个参数的和,并将和值返回调用函数。
函数中错误的部分是_______,改正后为_______。
void add(float a,float b){float c;c=a+b;return c;}8、设有如下结构体说明:struct ST{int a;float b;struct ST*c;doublex[3];}st1;请填空,完成以下对数组s的定义,使其每个元素均为上述结构体类型。
_______9、若有以下定义和语句,为使变量c1得到字符’A',变量c2得到字符’B’,正确的输入形式是_______。
char cl,c2;scanf("%4c%4c",&cl,8&c2);10、若有定义:doublex[3][5];,则x数组中行下标的下限为_______,列下标的上限为_______。
哈工大2007秋 C++ A
哈工大2007年秋季学期《高级语言程序设计》试题一、判断题(每题1分,共15分)【请将下列每个小题的正确答案填在本题后的表格中,正确的使用“”,错误的使用“”】1、在定义引用时,如果不给它赋初值,那么可以在定义后进行赋值。
2、引用可以是函数的返回值,返回引用的调用函数可以作为左值,如fun(x,y)++。
3、设a是某二维数组的数组名,则a++是可以的。
4、C++中可以定义内联函数,所有函数只要在定义时在其返回类型前加上inline 即成为内联函数。
5、设TPoint是一个已经定义的类,并提供了重载的带两个整型参数的构造函数,那么语句TPoint p5 = (1, 8); 是合法的。
6、在静态成员函数中,引用非静态成员时要通过对象才能引用。
7、类的构造函数可以对类中静态的数据成员进行初始化,被初始化的静态数据成员将保持该值到下一次被改变时为止。
8、设a2是某类型T的常对象,p1是T类型的常对象常地址指针,则p1 = &a2是合法的,而*p1 = a2是非法的。
9、构造函数可具有类型转换的作用。
构造函数所提供的类型转换和类中定义的类型转换成员函数的作用是相同的。
10、在公有继承方式下,基类中成员在派生类中的访问权限不被改变,派生类的对象对基类成员的访问权限没有限制。
11、在使用强制数据为类类型给对象数组元素赋值时,先调用构造函数创建临时对象,并将给临时对象给对象数组元素赋值,然后析构该临时对象。
12、派生类构造函数调用基类构造函数的顺序取决于定义派生类时所给定的基类顺序,与派生类构造函数中成员初始化表里基类构造函数出现的顺序无关。
13、只要有虚函数,那么在类的派生过程中即可实现动态联编。
14、在类的构造函数中,是不能调用该类的虚函数的,只有成员函数才能调用虚函数。
15、如果一个函数具有说明语句,那么默认参数可以在说明语句中设置,也可以在定义实现时设置。
二、程序阅读理解(每题5分,共25分)1、下面给出了一个对运算符++以成员函数方式进行定义的重载运算符的例子,完成如下要求:(1)给出程序的输出结果;(2)试将其改写为以友元函数的形式定义运算符++的重载。
C语言程序设计-A卷
哈尔滨工业大学〔威海〕2007/2021学年秋季学期C 语言程序设计 笔试试题〔A 卷〕题号 一二三四五六笔试(70%) 综合 (30%) 总分分数试卷说明:1. 笔试卷面总分100分,取卷面成绩的70%计入总分;2. 综合成绩为平时成绩(10%)和实验成绩(20%)之和,占总分的30%;3. 答题时禁止拆开试卷钉,试卷反面即为草稿纸;4. 答题时间120分钟。
一、单项选择题。
请把答案填入下面框中,不允许出框线。
〔此题16分,每题2分〕题号 1 2 3 4 5 6 7 8 答案1. 以下选项中合法的C 语言用户标识符是( )。
2. 有以下程序main() {int a=0, b=0, c=0, d=0; if(a=2) b=2; c=4; else d=3;printf("%d,%d,%d,%d\n",a,b,c,d); }那么程序输出( )。
A) 0,1,2,0 B) 0,0,0,3 C) 1,1,2,0D) 编译有错号学名姓注意行为标准 遵守考试纪律3.用语句scanf(“%c%c%c〞,&c1,&c2,&c3);输入〞a,b,c〞时,变量c1、c2、c3的值分别为( )。
A) ‘a′,′b′,′c′B) ′a′,′b′,′′C) ′a′,′,′,′b′ D) ′a′,′′,′c′4.有以下程序段main( ){int k=0;while(k=1) k++;}那么while循环执行的次数是( )。
A) 无限次B) 有语法错,不能执行C) 一次也不执行D) 执行1次5.有以下程序:#include <stdio.h>#include <string.h>main(){char *p=〞abc\101\0fghijk\0〞;printf(“%d〞,strlen(p));}执行后的输出结果为( )。
A) 6 B) 4 C) 12 D) 146.设有说明语句:int a=1, b=2, c=3, d=4, m=2, n=2;那么执行(m=a>b)&& (n=c>d)后n的值为( )。
MOOC哈工大2020C语言程序设计精髓编程题第二周
MOOC哈⼯⼤2020C语⾔程序设计精髓编程题第⼆周1 输出逆序数(3分)题⽬内容:从键盘任意输⼊⼀个3位整数,编程计算并输出它的逆序数(忽略整数前的正负号)。
例如,输⼊-123,则忽略负号,由123分离出其百位1、⼗位2、个位3,然后计算3*100+2*10+1 = 321,并输出321。
提⽰:1. 从键盘输⼊数据可以使⽤函数scanf()。
例如,scanf("%d", &x); 表⽰从键盘输⼊整数并存⼊整形变量x中。
2. 利⽤取绝对值函数 fabs()忽略输⼊数据的负号。
fabs(x)表⽰计算变量x的绝对值。
3.使⽤数学函数,需要在程序开头加上编译预处理指令 #include <math.h>#include <stdio.h>#include <math.h>int main() {//⽤户输⼊的三位数int x;//逆序数int y;//获取键盘输⼊scanf("%d",&x);//转换成绝对值x = fabs(x);//判断是否为3位数if(100 <= x && x <= 999){int a,b,c;//百位a = x / 100;//⼗位b = x /10 %10;//个位c = x % 10;y = c * 100 + b * 10 + a;}printf("Input x:\n");printf("y=%d\n",y);return 0;}2 计算总分和平均分(3分)题⽬内容:⼩明本学期共有5门课程,分别是英语、语⽂、数学、历史和⾳乐。
5科的期中考试成绩分别是86分、74分、92分、77分、82分,期末考试成绩分别是81分、87分、90分、62分、88分。
已知期中和期末考试成绩分别占总成绩的30%和70%。
定义相应的变量存放各科成绩,并计算出⼩明5门课程的总分和平均分。
哈工大C语言程序设计作业
int i,j;
for(i=0;i<m;i++){
for(j=0;j<n;j++){
printf("%8d",at[i][j]);
if(j==n-1)
putchar(10);
}
}
}
8、参考例8.6程序中的函数ReadScor()和Average(),输入某班同学某门课成绩(最多不超过40人),当输入为负值时,表示输入结束,用函数编程统计成绩高于平均分(包括等于平均分)的学生人数。
#include<stdio.h>
#define N 10
#define M 10
void Transpose(int a[][N], int at[][M], int m, int n);
void InputMatrix(int a[][N], int m, int n);
void PrintMatrix(int at[][M], int n, int m);
#include<stdio.h>
int main()
{
int a[5][5],s[5],t[5];
int i,j,k,l,h,n,m;
for (i=0;i<=4;i++)
{
scanf("%d %d %d %d %d",&a[i][0]&a[i][1],&a[i][2],&a[i][3],&a[i][4]);
}
int FindMin(int s[],int n)
{
int Min=0,m=s[0],i;
for (i=1;i<n;i++)
《C#程序设计》练习题
C#练习题一、简单题1.把输入的字符串str1中的内容逆置,并保存到字符串str2中,输出str2的内容。
例如:str1=“abc”,str2则为"cba"。
static void Main(string[] args){string str1 ;str1 = Console.ReadLine();string str2 = "";for (int i = str1.Length - 1; i >= 0; i--){str2 += str1[i];}Console.WriteLine("str2为{0}", str2);}2.已知三角形三条边长a,b,c,三边由用户输入,编程判断a、b、c的值是否构成三角形,如构成三角形,则计算并输出三角形的面积,否则输出“不能构成三角形”计算三角形面积公式为:s=0.5*(a+b+c)area=错误!未找到引用源。
求三角形的面积area。
static void Main(string[] args){int a, b, c;a = int.Parse(Console.ReadLine());b = int.Parse(Console.ReadLine());c = int.Parse(Console.ReadLine());if ((a + b > c) &&( b + c > a)&& (a + c > b)){double s = 0.5 * (a + b + c);Console.WriteLine("三角形面积:{0}", Math.Sqrt(s * (s - a) * (s - b) * (s - c)));}else{Console.WriteLine("不能构成三角形");}}3.输入一个字符串str1,删除str1中其中所有的0-9的数字字符,输出处理后的字符串。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、填空题。
(共20分,每空1分)1. 面向对象的程序设计方法(可用各种语言实现,如C++、Java、C#等)具有三大特性,它们分别是,,。
2. 已知m = 4, 执行m++;后,表达式的值是,m的值是,执行++m;后,表达式的值是,m的值是。
3. 已知m = 3, n = 2,则执行语句m > n ? m++ : ++n,m++,m+n;后,表达式的值是。
4. 循环语句while(int i = 0) { i--; } 执行的循环次数是次;语句for(int i(0), j(0); i = j = 1; i++, j--) { ;} 执行的循环次数是次。
5. 为了使函数能够返回两个或者更多的值,可将形参设置为下列两种方式,它们分别是或,如果希望实参不被修改,那么需要对形参使用关键字限制。
6.定义在类体外的函数,如果希望成为内联函数,则必须在类体内的声明中用关键字标识;运算符的重载必须用关键字标识。
7.在C++中,类的继承方式有三种,需要用关键字、和来定义。
默认继承方式为。
8.在C++中,定义友元类或者友元函数必须使用关键字。
二、判断题,正确的请打√,错误的请打×。
(共10分,每题1分)1. 编译C++源程序的过程中,出现了警告错误,也可以生成可执行文件。
()2. C++中,使用#define定义的常量必须给出类型说明,而使用const给出的常量不用给出类型说明。
()3. 表达式的值的类型只取决于运算符,与操作数无关。
()4. break语句可以出现在各种不同循环语句的循环体中,continue语句只能出现在循环体中。
()5. 函数没有返回值时,可以不加任何类型的说明符;任何一个函数都可以设置默认参数,但是不允许将一个函数的所有参数设置为默认参数。
()6. 指向函数的指针可以作为函数参数;使用数组名作函数参数时,实参数组与形参数组是共享内存单元的。
()7. 结构与联合的差别在于结构中的每个成员都有自己的内存地址,且都是不相同的,而联合中的所有成员是共享内存块的,且内存块的大小与成员中的最大内存块相同。
()8. 如果类的一个成员函数只存取该类的静态数据成员,可将该成员函数说明为静态成员函数;友元类的所有成员函数都可以对该类中的私有成员进行存取操作。
()9. 类型转换函数是类的成员函数,它是用来进行强制类型转换的,它不能定义为友元函数,也不能定义为静态的成员函数;带有一个参数的构造函数具有类型转换的作用。
()10. 在公有继承中,派生类的对象不可以访问基类中的保护成员;在私有继承中,派生类的对象不可以访问基类中的公有成员;在保护继承中,派生类可以访问基类中的保护成员。
()三、请分析下列程序,并回答问题。
(共16分)2、给出下列程序的输出结果,并说明其功能。
#include <iostream.h>int fac(int);void main(){int s(0);for(int i(1); i <= 5; i++){s += fac(i);cout<<s<<endl;}}int fac(int n){static int b = 1;b *= n;return b;}4、四、 阅读下列文档,并回答提出的问题。
(共16分)。
1、根据下列文档说明,请简要地回答后面给出的几个问题。
(6分)#include <iostream.h> class base { public:virtual int foo( int ival = 1024 ) {cout < "base::foo() -- ival: " < ival < endl; return ival; } // ... };class derived : public base { public:virtual int foo( int ival = 2048 ) {cout << "derived::foo() -- ival: " << ival << endl; return ival; } // ... }; int main() {derived *pd = new derived; base *pb = pd; int val = pb->foo();cout << "main() : val through base: "<< val << endl; val = pd->foo();cout << "main() : val through derived: "<< val << endl; }The methods for default assignment and initialization are “memberwise assignment” and “memberwise initialization,” respectively. Memberwise assignment consists of copying one object to the other, a membe r at a time, as if assigning each member individually. Memberwise initialization consists of copying one object to the other, a member at a time, as if initializing each member individually. The primary difference between the two is that memberwise assignm ent invokes each member’s assignment operator (operator=), whereas memberwise initialization invokes each member’s copy constructor.Memberwise assignment is performed only by the assignment operator declared in the form:type&type::operator=( [const | volatile] type&)Default assignment operators for memberwise assignment cannot be generated if any of the following conditions exist:·A member class has const members.·A member class has reference members.·A member class or its base class has a private assignment operator (operator=).·A base class or member class has no assignment operator (operator=).Default copy constructors for memberwise initialization cannot be generated if the class or one of its base classes has a private copy constructor or if any of the following conditions exist:·A member class has const members.·A member class has reference members.·A member class or its base class has a private copy constructor.·A base class or member class has no copy constructor.The default assignment operators and copy constructors for a given class are always declared, but they are not defined unless both of the following conditions are met:·The class does not provide a user-defined function for this copy.·The program requires that the function be present. This requirement exists if an assignment or initialization is encountered that requires memberwise copying or if the address of the class’s operator= function is taken.If both of these conditions are not met, the compiler is not required to generate code for the default assignment operator and copy constructor functions (elimination of such code is an optimization performed by the Microsoft C++ compiler). Specifically, if the class declares a user-defined operator=that takes an argu ment of type “reference to class-name,” no default assignment operator is generated. If the class declares a copy constructor, no default copy constructor is generated.○1在C++的类定义中,请简要回答默认的赋值方法与默认的初始化方法之间的差别。