printf(\ }
程序运行后的输出结果是 5 。 10、已定义以下函数
fun(char *p2, char *p1)
{ while((*p2=*p1)!='\\0'){ p1++;p2++; } }
函数的功能是:将 p1 所指字符串复制到 p2 所指内存空间
四、指针和数组
1. 下面程序段的运行结果是___hELLO_____。 char s[80],*sp=\ sp=strcpy(s,sp); s[0]='h'; puts(sp);
2. 下面程序段的运行结果是___ef_____。 char str[]=\ printf(\
3. 下面程序段的运行结果是: lang 。
char a[] = “language”, *p ; p = a;
while(*p != ?u?) {
printf(“%c”, *p); p++; }
4. 以下程序运行后的输出结果是 5 。
main()
{ char str[]=\
printf(\ }
5.若有定义:int a[]={2,4,6,8,10,12},*p=a;则*(p+1)的值是__4____。 *(a+5)的值是____12_____。
6.若有以下定义:int a[2][3]={2,4,6,8,10,12};则a[1][0]的值是__8___。 *(*(a+1)+0))的值是____8____。
****************************************************
7. 由若干基类型相同的指针所构成的数组,称为 指针数组 。 8. 有一个一维数组a[10],那么a与 &a[0] 等价。
五、字符串
1、不能用赋值运算符“=”将一个字符串赋值给一个字符数组,只能用 strcpy 函数实现赋值操作。
2、表达式strlen(“MALIN\\nMAN”)的值等于 9 。
3. 写出字符串处理函数的函数调用的一般形式:求字符串长度 strlen(str); ,字符串复制 strcpy(str1,str2); ,字符串比较 strcmp(str1,str2); 。
4. 用 gets 函数输入的字符串可以带空格。
六、结构体
1. 已有结构体,并且为该结构体定义了变量和指针变量,引用结构体的方法有
__________________
11
2. 下面定义的结构体类型拟包含两个成员,其中成员变量info用来存入整型数据,成员变量
link是指向自身结构体的指针,请将定义补充完整。struct node {int info; struct node*_ link; }
3. ad若有结构体 struct A{char a[6]; char b;}; 则sizeof(struct A)的值为_____7____ ****************************************************
4. 在C语言的数据类型中,数组和结构体都是构造类型,其中__数组__是同一类型的数据项占连续存储空间,_ 结构体 _是若干不同类型的数据项占连续存储空间。 5. 数组和链表都可以用于存储一组彼此有关联的数据,其中__数组__的长度是固定的, 链表 的长度是不固定的,而且可以动态分配存储空间。
6. 结构体是不同数据类型的数据集合,作为数据类型,必须先说明结构体_类型_,再说明结构体变量。
7. 如果有以下结构体类型的说明和变量定义,则把结点b连接到a之后的语句是_a.next=q; 。 struct ND { char data;
struct ND *next; } a,b,*p=&a,*q=&b;
8. 设有如下语句:
struct { int x; int y;
} d[2]={{1,3},{2,7}};
则执行:printf(“%d\\n”,d[0].y/d[0].x*d[1].x); 输出的是 6 。
**************************************************** 9、定义结构体类型以关键字 (6) 开始。 struct 10、有如下程序段
struct st { int x; int *y; } *pt; int a[]={1,2}; b[]={3,4}; struct st c[2]={ 10, a, 20, b }; pt = c;
则: 表达式*(pt->y)的值为 (9) ;表达式++(*pt->y)的值为 (10) 。1 2
七、文件操作
1. 在fopen函数中使用文件的方式是\,该方式的含义是___读写打开一个文本文件_____
2.C语言可以处理的文件类型是 文本文件与二进制文件 。
3、feof(fp)函数用来判断文件是否结束,如果遇到文件结束,函数值为 非0值 否则为 0 。 4、调用 fopen 函数打开一文本文件,在“使用方式”这一项中,如果是为输入而打开需填入 r 或 r+ 。
5、C语言文件有两种类型: 文件和 文件,其差别在于存储数值型数据的方式不同。 文本 二进制
6、因为操作系统对于同时打开的文件数目是有限制的,所以在文件使用结束后必须用函数 关闭由函数 打开的文件,否则会出现意想不到的后果。fclose fopen
7、语句fwrite(buffer,sizeof(Student),3, fp ); 实现的功能是: 。 把以buffer为首地
12
址的3个学生结构体类型数据输出到文件。
八、C++:
1. 语句cout << “hello\\0 world”的输出是___hello________ 2. 当建立一个新对象时,程序自动调用 构造函数 **************************************************** 3. C++源程序文件的缺省扩展名为 cpp 。
4. 构成对象的两个主要因素是 属性 和 行为 ,其中 属性 用于描述对象的静态特征, 行为 用于描述对象的动态特征。
5. 类和对象的关系可表述为:类是对象的 抽象 ,而对象则是类的 实例 。 6. 在关键字private后面定义的成员为类的 私有 成员。
7. 对象将其大部分实现细节隐藏起来,这种机制称为___封装___。 8. 复杂对象可以由简单对象构成,这种现象称为___聚合___。 **************************************************** 9、 和 作为函数重载判断的依据。 参数
Ⅲ 程序分析题
一、基础部分
1. 以下程序的输出结果为(x = 8)
#include
int i, j, x = 0;
for (i = 0; i < 2; i++) { x++;
for (j = 0; j < 3; j++) { if (j % 2) continue; x++; } x++; }
printf(\%d\\n\, x); return 0; } 2、以下程序的运行结果是 。6
#include
printf(“%d\\n”,m);
else;
printf(“%d\\n”,m--); }
13
3、下面程序的运行结果是_________。s=254 #include
{ int a,s,n,count;
a=2; s=0; n=1; count=1; while(count<=7)
{ n=n*a; s=s+n; ++count; } printf(\ }
二、 数组
1. 书写下面程序运行结果: 101 69 55 34 23 11 7 1 void main() { int a[8] = {34,55,11,7,69,101,1,23}; int i, j, k, tmp; for(i=0; i<7; i++) { k = i; for(j=i+1; j<8; j++) if(a[j] > a[k]) k = j; if(k != i) { tmp = a[i]; a[i] = a[k]; a[k] = tmp; } } for(i=0; i<8; i++) printf(“=”, a[i]); }
2. 下面程序的运行结果是___#&*&%_____。 #include
char s[]=\ int k;char c;
for(k=1;(c=s[k])!='\\0';k++)
{
switch(c) {
case 'A':putchar('%');continue; case 'B':++k;break; default:putchar('*');
case 'C':putchar('&');continue; }
putchar('#'); } }
3. #include
14
void main() {
float b[6]={1.1,2.2,3.3,4.4,5.5,6.6},t; int i; t=b[0];
for(i=0;i<5;i++) {
b[i]=b[i+1]; }
b[5]=t;
for(i=0;i<6;i++) { printf(“%6.2f”,b[i]); } }
2.20 3.30 4.40 5.50 6.60 1.10
四、指针和数组
1、书写下面程序运行结果:23 69 1 34 #define N 4
void Swap(int *x, int *y); void output(int array[], int n); void main() { int a[N] = {34,69,1,23}; Swap(&a[0],&a[N-1]); output(a, N); }
void Swap(int *x, int *y) { int tmp; tmp = *x; *x = *y; *y = tmp; }
void output(int a[], int n) { int i; for(i=0; i 2. 下面程序的运行结果是 3,0,-90,23,6,10, #include void invert( int*, int i, int j ); void main( ) { int a[6]={10,6,23,-90,0,3},i; invert(a,0,5); 15 。