A.int p
B.int p[10]
C..int *p
D.int (*p)[10]
15.编写C++程序一般需经过的几个步骤依次是(    )。
A.编译、编辑、连接、调试
B.编辑、编译、连接、调试
C.编译、调试、编辑、连接
D.编辑、调试、编辑、连接
二、多选题(每小题2分,共20分)
1.已知int a[]={1,2,3,4,5,6,7,8,9},*p = a; 则值为3的表达式是(    ) A. p+=2,*(p++)    B. p+=2,*++p    C. p+=2,*p++    D. p+=2,++*p
2.以下叙述中,错误的叙述是(    ) A.函数的形参都属于全局变量
B.全局变量的作用域不比局部变量的作用域范围大
C.静态(static )类别变量的生存期贯穿整个程序的运行期间
D.未在定义语句中赋初值的auto 变量和static 变量的初值都是随机值 3.下列选项中关于外部变量的作用域,正确的是(      )。 A.外部变量的作用域是所在的源文件  B.外部变量的作用域是整个源程序
C.可以通过extern ,将一些外部变量的作用域扩展到多个源文件
D.外部变量若定义为静态的,其他源文件不能使用该外部变量 4.下列选项中关于外部变量,正确的是(      )。
A. main 函数是主函数,不在main 函数内部定义的变量都是外部变量
B.外部变量必须定义在源程序的开始处
C.外部变量必须定义在所有函数的外面
D.定义外部变量时,可以进行初始化
5.下列选项中关于变量的生存期,不正确的描述是(      )。 A. auto 型变量是静态存储的,其生存期等同于程序的运行期。
B. static 变量是动态存储的,函数调用结束时,static 变量所占用的内存单元被释放
C. register 变量都是动态存储的
D.外部变量都是静态存储的
6.下列对C 语言字符数组的描述中,正确的描述是(    ) A.字符数组可以存放字符串
B.字符数组中的字符串可以整体输入.输出
C.不可以用关系运算符对字符数组中的字符串进行比较
D.可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值 7.若形参是简单变量形式,则对应的实参可以是(    ) A.常量    B.数组名    C.简单变量    D.数组元素 8.下列描述中,合法的数组定义是(      )。
A. char a[]={“String”}
B. char a[5]={0,1,2,3,4}
C. char a[]=“String”
D. char a[]={0,1,2,3,4,5};
9.下列描述中,不能正确给字符数组str 定义和赋值的是(      )。
A. char str[]={"abcdefghijklmn "}
B. char str[10];str ={" abcdefghijklmn "};
C. char str[10]={"abcdefghijklmn"}
D. char str[10];strcpy(str,"abcdefghijklmn");
10.如果想使下列数组a中5个元素的值全部为0,可以写成( )。
A.int a[5]={0:5}
B.int a[5]={0}
C.int a[5]={5:0}
D.int a[5]={0,0,0,0,0}
E.int a[5]=0
三.名词解释(每小题4分,共20分)
1.计算机语言
2.阶码
3.浮点数
4.数制
5.定点表示方法
四.简答题(写出程序的执行结果)(每小题6分,共30分)
1、斐波那契数列的第1和第2个数分别为0和1 ,从第三个数开始,每个数等于其前两个数之和。求斐波那契数列中的前20个数,要求每行输出5个数。
#include<iostream.h>
void main() {
int f,f1,f2,i;
cout<<” 斐波那契数列:\n”;
f1=0; f2=1;
cout<<setw(6)<<f1<<setw(6)<<f2;
for(i=3;i<=20;i++) {
f=______(1)______;
cout<<setw(6)<<f;
if(_____(2)______) cout<<endl;
f1=f2;
f2=____(3)_______; }
cout<<endl; }
2、打印出2至99之间的所有素数(即不能被任何数整除的数)。
#include<iostream.h>
#include<math.h>
void main()
{int i,n;
for(n=2; ___(1)___; n++) {
int temp=int(sqrt(n)); //求出n的平方根并取整
for(i=2; ___(2)___; i++)
c语言斐波那契数列
if(n%i==0) ___(3)___;
if(i>temp) cout<<n<<' '; }
cout<<'\n';}
3、采用辗转相除法求出两个整数的最大公约数。
#include<iostream.h>
void main()
{int a,b;
cout<<"请输入两个正整数:";
cin>>a>>b;
while(a<=0 || __(1)___) {cout<<"重新输入:"; cin>>a>>b;}
while(b) {
int__(2)__;
r=a%b;
___(3)___; ___(4)___; //分别修改a和b的值}
cout<<a<<endl; //输出最大公约数}
4、函数primedec(m)是求整数m的所有素数因子,并输出。如:m为120时。输出的素数因子为:2,2,2,3,5
程序如下:
primedec(int m)
{int k=2;
while (k<=m)
if (m%k ①)
{printf(“%d,”,k);
②}
else
③}
5、用起泡法对10个整数排序(由小到大)
起泡法的思路:将相邻的两个数比较,将小的调到前头。
main()
{ int a[11],i,j,t;
printf(“input 10 numbers:\n”);
for(i=1;i<11;i++)
printf(“\n”);
for(j=1;j<=9;j++)
for(i=1;②;i++)
if ( ③)
{ t=a[i];
⑤}
printf(“the sorted numbers:\n”);
for(i=1;i<11;i++)
printf(“%d ”,a[i]);
}
五.计算题(共15分)
1.main ( )
{ int a=4,x=5,b=8;
fun(b,6);
printf("%d,%d,%d\n",a,b,x);}
fun (int a,int b)
{ int x=3;
printf("%d,%d,%d\n",a,b,x);}
运行结果:
2.#include<iostream.h>
void SB(char ch){
switch(ch){
case 'A':case 'a':
cout<<"well!";break;
case 'B':case 'b':
cout<<"good!";break;
case 'C':case 'c':
cout<<"pass!";break;
default:
cout<<"bad!";break;}} void main(){
char a1='b',a2='C',a3='f';
SB(a1);SB(a2);SB('A');
cout<<endl;}
运行结果:
3.#include<iostream.h>
#include<stdlib.h>
double SD(int a,int b,char op){
double x;
switch(op){
case '+':x=double(a)+b;break;
case '-':x=double(a)-b;break;
case '*':x=double(a)*b;break;
case '/': if (b) x=double(a)/b;
else exit(1);
break;
default:exit(1);}
return x;}
void main(){
int x=20,y=12;
cout<<SD(x,y,'-')<<' ';
cout<<SD(x,y,'*')<<' ';
cout<<SD(x+y,y-2,'/')<<endl;}运行结果:
4.#include<iostream.h>
void main(){
int s=0;
for(int i=1;i<6;i++)
s+=i*i;
cout<<"s="<<s<<endl;}
运行结果:
5. main( )
{ int x=7,y;
if(x<5) y=x;
else if(x<10) y=2*x+1;
else y=3*x-1;
printf(“%d\n”,y);}
运行结果:
6. main( )
{int i,j;
for(i=1;i<=3;i++)
{for(j=1;j<=i;j++)
printf(“%d”,j);
printf(“\n”);}
}
运行结果:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。