A) malloc B) new 38. C++源程序文件的扩展名是 。 A) .cpp B) .c
C) free C) .dll
D) delete(释放) D) .exe
39. 若有: int x; 则正确的定义引用的语句是 。 A) int y=&x; B) int &y=x; C) int &y; D) int &y=&x; 41. 关于C++程序说法不正确的是:
A) C++程序由函数构成,但只有个main( )函数 B) C++程序中 main( )函数 可以在函数的任何位置
C) C++程序由 main( )函数开始执行,由main( )函数结束执行 D) main( )函数 都没有参数的
? 填空题20题(每题1.5分,共30分)
1. 用高级语言编写的源程序必须通过 编译 程序翻译成目标程序后才能执行。 2. C程序的语句结束符是 ; 。
3. 目标程序的扩展名是 .obj 。(源程序(.asm)——目标程序(.obj)——可执行程序(.exe))
4. 在内存中存储“B”要占用 2 字节,存储‘b’要占用 1 个字节。 5. 设int i=5; 则循环语句while(i>=1) i--; 执行后,i的值为 0 。 6. break 语句可在 循环语句 或 开关语句 中使用。
7. 设i、j、k、均为int形变量,则执行“for(i=0,j=9;i<=j;i++,j--) k=i+j;”语句后,k的值是 10 。
8. 设有定义:char s[5]={‘a’,’b’}; 则s[1]中字符是‘a’ ,s[2]中的字符是 , 。 9. 设有定义语句:char s[]=”abcdef\\0”}; 则数组s的长度是 7 ;数组元素s[6]中存放的字符是‘\\0’。
10. 设有定义语句:char s1[10]=”123\\0abc”; 则表达式”strlen(s1)”的值是 3 。 11. 定义函数时,若函数体中出现语句“return(x)”,则这种函数称为 有返回值 函数;若函数体中出现语句“return”或无该语句,则这种函数称为 无返回值 函数,该函数的数据类型为 void 。 练习题: 1、结构化程序设计由三种控制结构组成,即顺序结构、循环结构和选择结构。 2、设有定义语句:char s[][5]={“abcd”};则二维数组s中共有 5 个数组元素,s[0][0]中存放的字符是 ?a? 。 3、若有定义:int a[3][4],则a数组中行下标下限是 0 ,列下标的上限是 3 。 4、C语言中格式化文件输出函数是printf(),用于文件定位的函数是fseek()。 7、调用函数时,若形式参数和实际参数均为变量名时,传递方式为 值传递 ,若形式参数和实际参数均为数组名时,传递方式为 引用传递 。 8、类中定义的数据和函数,称为 成员变量 和 成员函数 。 9、在C++中,提供的动态分配和释放内存的操作符是 new 和 delete 。 10、C语言中,要求参加运算的操作数必须是整型数或字符型的运算符是___%______。 1、C语言所提供的基本数据类型包括:单精度型、 整型 、 布尔 、 字符 。 2、C语言提供三种逻辑运算符是 && 、 || 、 ! 。 第 6 页 ,共 9 页
3、变量的指针,其含义是指向该变量的 地址 。 5、C语言中, *运算符作为单目运算符时表示的是 指针 运算, 作为双目运算符时表示的是 乘 运算。 7、C源程序基本单位是 .cpp 。 ? 程序填空题4题(每题7.5分,共30分) 1. 下列程序的功能是计算并输出1!+2!+3!??+10!。 void main(void) {float x, y=0 ; int i, n;
for(n=1;n<=10;n++) { x=1 ;
for(i=1;i<=n;i++) x*=i ; y= y+x; }
printf(“%f\\n”,y); }
2. 从键盘读入若干个字符,输入到名为 abc.dat 的新文件中,请填空。 #include
FILE *fp; char ch;
if((fp=fopen( “abc.dat”,”w” ))==NULL) exit;
while((ch=getchar()) !=’@’) /*以@作为结束标志*/ fputc(ch,fp); fclose(fp); }
? 程序设计题2题(每题15分,共30分)
1. 编辑一个程序,可以输入一个字符,将字符与对应的ASCII码一起输出。 #include
{ char c;
scanf(\ printf(\ printf(\}
选择题
11.若有说明:char *s[]={“FORTRAN”, “BASIC”,”PASCAL”,”JAVA”,”C”}; 则表达式 *s[1]>*s[3]比较的是( )。
第 7 页 ,共 9 页
A)字符F和字符P B)字符串BASIC和字符串JAVA C)字符B和字符J D)字符串FORTRAN和字符串PASCAL 12.如下程序的输出结果是( )。 #include
{ char a[20]=\; char *p=a; for (; p
A)chinese B)ciee C)chine D)cie
13. 若有定义: int a[2][3];则对a数组的第i行第j列(假设i,j已正确说明并赋值)元素值的正确引用为( )。
A)*(*(a+i)+j) B)(a+i)[j] C)*(a+i+j) D)*(a+i)+j
14. 若有以下定义和语句,则对a数组元素的正确引用为( )。 int a[2][3],(*p)[3]; p=a;
A)(p+1)[0] B)*(*(p+2)+1) C)*(p[1]+1) D)p[1]+2
15.若以下main函数经过编译、连接后得到的可执行文件名为echo.exe,若希望在系统的命令状态下输入某一命令行后得到的输出是chian tianjin,则命令行的内容应是( )。 A)chian tianjin B)echo chian tianjin C)echo D)echo chian tianjin china tianjin
16.以下对结构体变量stu中成员age的非法引用是( )。 struct student
{ int age; int num; } stu, *p; p=&stu;
A)stu.age B)student.age C)p->age D)(*p).age 17.已知学生记录描述为: struct DATE { int year; int month; int day; };
struct student
{ int no; /*学号*/ char name[10]; /*姓名*/
第 8 页 ,共 9 页
char sex; /*性别*/ struct DATE birth; };
struct student s;
设变量s中的“生日”应该是“1984年11月11日”,下列对“生日”的正确赋值方式是( )。 A)year=1984; B)birth.year=1984; month=11; birth.month=11; day=11; birth.day=11; C)s.year=1984; D)s.birth.year=1984; s.month=11; s. birth.month=11; s.day=11; s.birth.day=11; 18.若有以下定义的语句: union data { int i; char c; float f; }a; int n;
则以下语句正确的是( )。
A)a.i=5 B)a={2,?a?,1.2} C)printf(“%d”,a) D)n=a 19. 表达式a
A)~,&,<, || B)~,||,&,< C)~,&,||,< D)~,<,&, || 20.若执行fopen函数时发生错误,则函数的返回值为( )。 A)地址值 B)0 C)1 D)EOF 11.C 12.B 13.A 14.C 15.B 16.B 17.D 18.A
第 9 页 ,共 9 页