河北建院高级语言程序设计C++部分试题及答案

更新时间:2024-06-10 14:49:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1. 编写程序,将10个整数2、4、6、。。。。。。20赋予一个数组,然后使用指针输出该数组各元素的值。

#include using namespace std; int main() {int a[10],i,*p;

for(p=a,i=0;p

for( p=a;p

2. 把键盘输入的一个大写字符串改为小写字符串并显示出来,其中大小写转换使用用户自定义函数lower()实现。 #include #include using namespace std; void lower(char *p) {char ch;

for(;*p!='\\0';p++) { ch=*p+32; cout<

cout<

void lower(char *p) {

for(;*p!='\\0';p++) cout<

int main()

{char ch[100],*p;

cout<<\ cin>>ch; p=ch; lower(p); return 0; }

3. 输入一个字符串,删除其中的所有空格后输出,例如,输入h e l l o,输出hello。 #include #include using namespace std; int main()

{char a[100],b[100]; int i,m,j=0;

cout<<\ cin.get(a,100); m=strlen(a); for (i=0;i

{b[j]=a[i] ; j++; } else continue; } b[j]='\\0';

for (j=0;j

或(不对)

#include #include #include using namespace std; int main()

{char a[100],b[100]; int i,m,j=0;

char *p=a,*q=b;

cout<<\ cin.get(a,100);

for (p=a,i=0;i

{*(q+j)=*(p+i);j++;} else continue;} *(b+j)='\\0';

for (q=b,j=0;j

或:

using namespace std; int main() {char a[100]; int i;

char *p=a;

cout<<\ cin.get(a,100);

for (p=a,i=0;i

}1. 从键盘上输入一个字符,输出其对应的ASCII值。

2.有一分段函数写一程序,输入x的值,输出相应y的值。 x (x<1) y= 2x-1 (1≤x<10) ,

3x-11 (x≥10)

3.编写程序,其功能是:输入一个字符串,将其中的所有数字删除、输出改动后的字符串及其长度,例如输入:ab123df354ADFx193输出abdfADFx 8。

4.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 5.求Fibonacci数列的前40个数,并按照4列一行输出。 6.编一程序,求1!+2!+3!+?+10!之和。

7.编一程序,将输入数据按小于10,10~99,100~999,1000 以上分类并显示。例如,输入358时,显示358 is 100 to 999。

8.编一程序,求满足如下条件的最大的n 。

2222

1+2+3+?+n≤1000

9.编程求100以内的偶数之和。 10.用冒泡法对10个整数排序。

11.两个函数,分别求两个整数的最大公约数和最小公倍数,用main函数调用这两个函数,并输出结果,两个整数由键盘输入。

12.利用指针实现将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中各单元的值。

一、单项选择题(每小题2分,共50分)

1.根据C++语言的语法规则,下列选项中,( ) 项是不合法的标识符。

A ) day B) radius C) $abc D) y_1

2.执行int a=10,ch=’2’,b=5; 后,表达式(ch>’C’ && a && a>=b)的值是( )。 A) 0 B) “假” C) 1 D) “真” 3.设有int a=5,d;语句,则执行语句d=1.1*30/++a后,d的值是( )。

A ) 6 B ) 5 C ) 6.6 D ) 5.5 4.下面有关编译预处理命令的说法,哪个是错误的( ) ?

A ) 编译预处理命令可以提高编程效率 B ) C++编译预处理命令包括宏定义命令 C ) 在一行中可写多条编译预处理命令 D ) 编译预处理命令不是C++的语句 5.下面关于C++程序书写格式的说法哪个是错误的( )?

A ) 一般一行写一条语句 B ) 一行可写多条语句 C ) 一条语句可以写在多行上 D ) 一行必须写一条语句 6.已知:int a[10],*p,b; 下面( )是合法的。

A) a[10]=10 B) b=a[10] C) a = p D) p=a

7. 有以下语句: int x[]={2,4,6,8,10},*p;p=x;则对数组元素的不正确引用是( )。

A)(*p)++ B) *(p--) C) x[6] D) *(++p) 8、C++语言的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( )。

A) 必须为字母。 B) 必须为下划线

C) 必须为字母或下划线 D) 可以是字母、数字和下划线中中任意一种字符。

9. 设int a = 10, b = 11, c = 12;表达式( a + b ) < c && b ! = c的值是( )

A) 2 B) 0 C)-2 D) 1

10.设有数组定义:char array[10]=”computer”; 则数组所占的空间为( )。

A) 10个字节 B) 9个字节 C) 8个字节 D) 7个字节 11.下列关于复合赋值运算符的描述,( )是错误的。

A) a-=7等价于a=a-7 B) a*=b+5等价于a=a*b+5

C) a/=b-3等价于a=a/(b-3) D)使用复合赋值运算符可以提高计算速度 12. 变量的指针,其含义是指该变量的( )。

A)值 B)地址 C)名 D)一个标志

13. 下列数组定义中,会产生错误的是( )

A) int a[] = {‘0’,’1’,’2’,’3’,’4’,’5’,’6’}; B)int a[10] = {1,2,3,4,5,6}; C)char a[5] = “hello”;

D) char a[5] = {‘h’,’e’,’l’,’l’,’o’}; 14. 若有说明“int a[3][4]={0};”,则下面正确的是( )

A ) 只有元素a[0][0]可得到初值0 B )此说明语句不正确

C )数组a各元素都可得到初值,但其值不一定是0

D ) 数组a中每个元素均可得到初值0

15. 以下不能正确定义二维数组的语句是( )。

A)int a[2][2]={{1},{2}}; B)int a[ ][2]={1,2,3,4} ; C)int a[2][ ]={{1,2},{3,4}}; D)int a[2][2]={{1},2,3}; 16. 有以下程序:

int main()

{ int a[][3]={1,4,7,2,5,8,3,6,9}; int i,j=2; for(i=0;i<3;i++) { cout <

执行结果是( )

A) 456 B ) 258 C) 369 D) 789 17. 以下程序段中循环体执行的次数为( )次。

int x=20;

do

{ x=x/2; x=x-1; }while(x);

A)4 B)3 C)5 D)无限 18. 在C++语言里,一条语句以( )字符作为结束符。

A) , B) ; C) . D)无符号

19. 下列关于类型转换的说法中,错误的是( )

A) 如果a为int型变量,b为char型变量,则a+b的值为int型

B)如果a为float型变量,b为int型变量,则a-b的值为double型

C)如果a为double型变量,b为float型变量,则a*b的值为double型

D) 如果a为int型变量,b为int型变量,则a/(double)b的值为int型 20. 若有如下程序段,则( )。

int x=3;

do { x-=2;cout<

A)输出的是1 B)输出的是1和-2 C)输出的是3和0 D)是死循环

21. 在函数定义中,关于函数说明部分下列正确的是( )。

(A) int f1(int x,y) (B) void f2(int x,int y) (C) float f3(x,y) (D) double f4(double,double) 22.以下叙述中不正确的是( )

A)预处理命令行都必须以#号开始 B)在程序中凡是以#号开始的语句行都是预处理命令行

C)宏替换不占用运行时间,只占编译时间 D)以下定义是正确的:#define PI 3.1415926;

23.下列程序段运行的结果是( )。

char str[ ]=”program”, *p=str; p+=3; cout p;

A ) program B ) gram C ) prog D ) g 24. 判断字符串s1是否大于字符串s2,应当使用( )。

A)if(s1>s2) B)if(strcmp(s1,s2)) C)if(strcmp(s1,s2)>0) D)if(strcmp(s1,s2))>0 25. #define MA(x) x*(x-1)

int main( )

{ int a=1, b=2;

cout<

二 、填空题(每空2分,共20分)

本文来源:https://www.bwwdw.com/article/i9a6.html

Top