《c语言程序设计基础》试卷 (A卷)考试时间:90分钟闭卷任课老师:班级:学号:姓名:成绩:(每小题2分,共30分)、由C++源文件编译生成的目标文件的缺省扩展名为()A、cppB、exeC、objD、lik2、下列中,不是C++合法的标识符()A、2mnB、m123C、kkD、a_13、C++中,基本数据类型不包括()A、intB、floatC、charD、class4、x和y均为bool量,则x| |y为真的条件是()A、它们均为真B、其中一个为真C、它们均为假D、其中一个为5、C++中,一个字符型数据在内存中占()字节。
A、4B、2C、1D、86、字符串常量”hello”的长度是()A、5B、6C、7D、87、以下语句,int i=2,j=2,m,n;m=i++;n=++j;则m,n,i,j的值分别为()A、2,3,2,2B、2,3,3,3C、2,2,3,3D、3,3,2,28、假定a为一个整型数组名,则元素a[4]的字节地址为()A、a+4B、a+8C、a+16D、a+329、 x>0 || y==5的相反表达式为()。
A、 x<=0 || y!=5B、 x<=0 && y!=5C、 x>0 || y!=5D、 x>0 && y==510、在下面的函数声明中,存在着语法错误的是()A、void BC(int a , int)B、void BD(int , int)C、void BE(int , int=5)D、int BF(int x ; int y)11、循环体至少被执行一次的语句为()。
A、for循环B、while循环C、do循环D、任一种循环12、已知一函数中有下列变量定义,其中属于静态变量的是()A、int a=5;B、static double b;C、register char c;D、auto short d;13、do语句能够改写为()语句。
A、复合B、ifC、switchD、 while14、要使语句: p=new int[10]; 能够正常执行,p应定义为()A、int p;B、int p[10];C、int *p;D、int (*p)[10];15、编写C++程序一般需经过的几个步骤依次是( )。
A、编译、编辑、连接、调试B、编辑、编译、连接、调试C、编译、调试、编辑、连接D、编辑、调试、编辑、连接二、填空题(每小题1分,共10分)1、使用const 语句定义一个标识符常量时,则必须对它同时进行。
2、用于输出表达式值的标准输出流对象是_________,用于从键盘上为变量输入值的标准输入流对象______。
3、在每个C++程序中都必须包含有这样一个函数,该函数的函数名为。
4、在C++语言中,用转义字符序列或操纵符表示输出一个换行符。
5、假定一个枚举型的定义为”enum RB{ab,ac=3,ad,ae}x=ad;”,则x的值为。
6、设px是指向一个类动态对象的指针变量,则执行“delete px;”语句时,将自动调用该类的。
7、关系表达式x+y>5的相反表达式为8、空串的长度为___,存储它需要占用___个字节。
9、表达式: x=625,i=(x>100?10:100) 的值是。
10、C++语言中的每条基本语句以作为结束符,每条复合语句以作为结束符。
三、写出下列每个函数的功能(每小题4分,共20分)1、#include<math.h>bool SG(int x) {/ /x为大于等于2的整数int a=int(sqrt(x));/ /取x的平方根int i=2;while(i<=a) {if(x%i= =0) break;i+ +;}if(i<=a)return 0;else return 1;}2、#include <iostream.h>int SC(int a,int b,int c){if(a>=b && a>=c) return a;if(b>=a && b>=c) return b;if(c>=a && c>=b) return c;}3、#include <math.h>bool SG(int x){int a=int(sqrt(x));int i=2;while(i<=a){if(x%i==0) break;i++;}if (i<=a) return 0;else return 1;}4、int SC(int a,int b,int c) {if(a>=b && a>=c) return a;if(b>=a && b>=c) return b;if(c>=a && c>=b) return c;}四、阅读下列程序,在处填入适当内容,使程序完整(每个空1分,共10分,)1、下面函数是求两个整型参数a和b的最小公倍数。
int f2(int a, int b){int i=2, p=1;do {while(a%i==0 && ___(1)___) {p*=i; a/=i; b/=i; }___(2)___;}while(a>=i && ___(3)___);return p*a*b; }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++)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; //输出最大公约数 }五、写出下列程序的运行结果(每小题5分,共30分)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”);}}运行结果:以下为本试卷的参考答案一、选择题(30分,每小题2分)1、( C )2、( D )3、( D )4、( A )5、( C )6、( B )7、( A )8、( A )9、( B ) 10、( B )11、( C ) 12、( B ) 13、( D ) 14、( C ) 15、( B )二、填空题(10分,每小题1分)1、声明2、 cout、cin3、 main4、‘\n’,endl5、 46、动态内存7、x+y<5||x+y==58、 0 19、10 10、; {}三、写出下列每个函数的功能(20分,每小题4分)1.判断整数x是否为质数,若为质数返回true,若不是则返回false。