资源描述
《低级 语言 次序 方案 〔C++I〕》练习 题
一.单项选择 题〔每题2分,共20分〕
1.以下字符列中,合理 的浮点型常量是:
(A) 457 (B) 6e5.3 (C) e7 (D) 123e6
2.字符串常量 〞w\x42\\\nx\103y〞 的长度是:
(A) 7 (B) 11 (C) 15 (D) 16
3.以下运算符中,自右向左结合 的运算符是:
(A) [] (B) <= (C) *= (D) <<
4.表达 式4/8*100/2.0的值是:
(A) 25 (B) 25.0 (C) 0 (D) 0.0
5.设变量int a = 5; 以下哪个表达 式打算 后,使得变量b的值不为2 ?
(A) b=a/2 (B) b=6-(--a) (C) b=a%2 (D) b=a<3?3:2
6.设a是整型变量,不克不迭 表达 数学关系 式11<a<15的C++表达 式是:
(A) a>11&&a<15 (B) a==12||a==13||a==14
(C) !(a<=11)&&!(a>=15) (D) 11<a<=14
7.以下C++代码中,不克不迭 精确 对字符串s1置串值的代码是:
(A) char *s1; cin>>s1; (B) char *s1,*s2=〞name〞; s1=s2; (C) char s1[5]=〞name〞; (D) char s1[5]={〞name〞};
8.一个存在 6个整型指针元素的一维数组的正判定 义是:
(A) int **p[6] (B) int *(p)[6]
(C) int *p[6] (D) *(*(p)[6])
9.实行 语句 x=1; while(x++<7)cout<<’*’; 后输出结果是:
(A) ** (B) **** (C) ****** (D) *******
10.假设 用一维数组名作为调用 函数时的实参,那么转达 给形参的是:
(A) 数组首元素的所在 (B) 数组首元素的值
(C) 数组元素的个数 (D) 数组中全部 元素的值
二.简答题〔每题2分,共20分〕
1.设整型变量x为任何一个整数,表达 式 –2<x<2 的值是?
2.调用 函数时,希望 从供应 的实参变量中掉 掉 落 函数的结果,那么对应的形参该当 是?
3.设有变量定义 char *s[]={“Beijing〞,〞Shanghai〞,〞Guangzhou〞}; 实行 语句cout<<*(s+1)+1; 输出是?
4.表述“变量x的值等于 3〞跟 “变量y的值等于 5〞其中 有且只需一种情况成破 的表达 式是?
5.设有变量定义 int a[4][3],*p=a[2]; 表达 式 p+2 指向的元素是? 6.将字符串str2拷贝到字符数组str1[]中,应调用 函数?
7.说明语句 char *w(); 的含义 是?
8.表达 式 new int[10] 的含义 是?
9.设有函数调用 语句 Count(a ,num,max,min,average); 功能 是由参max, min, average前去 整型数组a前num个元素中的最大年夜 值,最小值跟 平均值。对应的函数原型是?
10.有说明 struct link{ int code; link *next; }; link *head,*p;已经清楚 head为单链表的头结点,在*head之后拔出*p结点把持 的语句是?
三.分析次序 ,写输出结果〔每题5分,共20分〕
1. #include<iostream.h>
void main()
{ int a[10]={2,4,0,-5,10,6,-8,9,6,7};
int i,s=0,count=0;
for(i=0;i<10;i++)
if(a[i]>0) s+=a[i],count++;
else continue;
cout<<"s="<<s<<" count="<<count<<endl;
}
2. #include<iostream.h>
void fun();
void main()
{int i;
for(i=1;i<5;i++)
fun();
cout<<endl;
}
void fun()
{static int a;
int b=2;
cout<<(a+=3,a+b)<<'\t';
}
3. #include<iostream.h>
int lcm(int m, int n)
{ int r,a,b;
a=m; b=n; r=m;
do{
m=n; n=r; r=m%n;
}while(r);
return a*b/n;
}
void main()
{ cout<<lcm(3,7)<<'\t'<<lcm(4,6)<<endl; }
4. #include <iostream.h>
void printN(int n)
{ if(n)
{ printN(n-1);
cout << n << ends ;
}
}
void print(int w)
{ if( w )
{ print( w-1 );
printN(w);
cout << endl;
}
}
void main()
{ print( 5 ); }
四.按照次序 功能 填空。〔每空2分,共20分〕
1.本次序 按以下公式打算 e的值,精度为1e-6。
#include<iostream.h>
void main()
{ double e,t,n;
e=0;
t=n=_____(1)_____;
while(_____(2)_____)
{ e+=t;
_____(3)_____;
n=n+1.0;
}
cout<<"e="<<e<<endl;
}
2.本次序 由主函数输出一字符串,调用 函数,把该字符串中的数字0~9转换成小写字母a~j;所有 小写字母转换成大年夜 写字符。然后 在主函数输出转换后的字符串。
#include<iostream.h>
#include<ctype.h>
_____(4)_____
void main()
{char str1[20], str2[20];
cin>>str1;
change(str1,str2);
cout<<str2<<endl;
}
void change(char *s1, char *s2)
{ while(_____(5)_____)
{if(*s1>='0'&&*s1<='9')
*s2=_____(6)_____;
else *s2=toupper(*s1);
_____(7)_____
}
*s2='\0';
}
3.函数create从键盘输出整数序列,以输出0为终了。按输出逆序树破 一个以head为表头的单向链表。比如 ,输出序列为1 2 3 4 5 0,树破 的链表是5 4 3 2 1。
struct node{int data; node * next;};
void create(node * &head)
{node *p;
_____(8)_____;
cin>>p->data;
while(p->data!=0)
{if(head==NULL)
{ head=p; head->next=NULL; }
else
{ _____(9)_____
_____(10)_____
}
p=new node;
cin>>p->data;
}
}
五.次序 方案 〔第1小题6分,第2、3小题各7分,共20分〕
1. 编写函数输出以下形状 的图形,其中 构成 图形的标志 跟 输出的行数通过参数转达 。
#
# #
# #
# #
# # # # # # # # #
2. 编写一个次序 ,实现 如下功能 :
〔1〕输出k〔<100〕个整数到数组x[100]中;
〔2〕打算 k个数的平均值及大年夜 于平均值的元素个数。
3. 编写一个次序 ,实现 如下功能 :
〔1〕从键盘输出a op b。其中 a, b为数值;op为字符,限制 为+、-、*、/ 。
〔2〕调用 函数count(op,a,b),打算 表达 式a op b的值。由主函数输出结果。
精选可编辑
展开阅读全文