c语言专业课二什么时候开始,C语言复习题(考研版)(2)

C语言复习题(考研版)(2)本站小编 福瑞考研网/2017-01-09

引用字母 o的表达式是( A) Aps+2 B s[2] C ps[2] D ps+=2, *ps

3.

(南京师范大学,教育技术学,2005年)如下程序的的运行结果是( D) main() {

chara[]=”programming”,b[]=”language”;

char *p1=a,*p2=b;

int i;

for(i=0;i<7;i++)

if(*(p1+i)==*(p2+i))

printf(“%c”,*(p1+i)); } A、gm B、rg C、or D、ga

4.

(南京师范大学,教育技术学,2005年)设有以下语句,则( A)不是对 a数组元素的正确引用

Int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a,i=9; A *(*(a+i)) B *(&a[i]) C p[i] D a[p-a]

5.

(南京师范大学,教育技术学,2006年) C语言中,以下程序输出结果是:( B) chara[10]={'9','8','7','6','5','4','3','2','1',0},*p; int i=7;p=a+i; printf("%s\n",p-2);

A. 4 B. 4321 C.54321 D,43210

6.(南京师范大学,教育技术学,2006年) C语言中,对于基类型相同的两个指针变量,不能进行的运算是:( C)

A. < B. = C. + D. –

7.(南京师范大学,教育技术学,2006年) C语言中,说明语句 int *f();标识符 f代表的是:( D)

A.一个用于指向整型数据的指针变量 B.一个用于指向一维数组的行指针

C.一个用于指向函数的指针变量 D.一返回值为指针型的函数名

8.(湖南大学,计算机软件与理论, 2005)说明语句 v“int (*p)();”的含义是( C)

Ap是一个指向一维数组的指针变量 Bp是指针变量,指向一个整型数据

Cp是一个指向函数的指针,该函数的返回值是一个整型

D以上都不对

9.(北京航空航天,软件学院, 2012年)字符指针、浮点数指针、以及函数指针这三种类型的变量哪个占用的内存最大?为什么?答:这三种类型的变量所占内存大小是一样的。因为指针变量只需要存储一段内存单元的首地址。

结构体

1.(北京航空航天,软件学院, 2012年)当说明一个结构体变量时系统分配给它的内存是

(D)。

A.结构中最后一个成员所需的内存量 B.结构中第一个成员所需的内存量

C.成员中占内存量最大者所需的容量 D.各成员所需内存量的总和

2.

(北京大学,?年)下面关于结构类型的说法正确的是( ABD)。

A对于结构变量,可以通过运算符 "."或"->",逐个访问其成员;

B结构变量和结构变量成员的地址都可以被引用;

C如果指针变量 p已指向某结构数组,则 p+1指向当前元素的下一个成员;

D如果指针变量 p已经指向一个结构变量(或结构数组),就不能再使之指向结构变量(或

结构数组元素)的某一成员。

3.

(湖南大学,计算机软件与理论, 2005)若有以下结构体定义: struct example { int x;

int y;

}v1;则下面哪一项是正确的引用或定义( D) Aexample.x=10; B example v2; v2.x=10; C struct v2: v2.x=10; D struct example v2={10};

4.

(湖南大学,计算机软件与理论, 2005)若有如下说明,则下面哪一项的叙述是正确的(已知 int类型占两个字节)。( D)

A结构体变量 a与结构体成员 a同名,定义是非法的 B程序只在执行到该定义时才为结构体 st分配存储单元 C程序运行时为结构体 st分配 6个字节存储单元 D类型名 struct st可以通过 extern关键字提前引用(即引用在前,说明在后)

5.

(北京航空航天,软件学院, 2012年)下列代码的功能包括:定义一个 x数组,说明一个结构体,同时对变量 t进行初始化,使得 t的 a成员的值为 50,b成员的值为 x数组的首地址。请在空白处 (方框内 )填入合适的内容,以完成上述功能。

int x[5]={1,2,3,4,5}; struct{ int a, int *b. }t{ (1) , (2) };答: (1)50 (2)x

6.

(南京师范大学,教育技术学,2006年) C语言中,设有以下语句: (没有答案 )

#include

struct st {int n; struct st *next;};

static struct st a[3]={5,&a[1],7,&[2],9,a},*p;

p=&a[0];

则表达式 _______的值是 6.

A.p++—>n B.p—>n++ C.(*p).n++ D.++p—>n

7.(北京航空航天,软件学院, 2012年)对于下列程序,若从键盘上输入: abc def,

则输出结果是 (A)。 #include #include main( )

{ char *p,*q;

p=(char *)malloc(sizeof(char)*20);

q=p;

scanf(“%s%s”,p,q);

printf(“%s%s\n”,p,q);

}

A.defdef B.abcdef C.abcd D.dd

8.(南京师范大学,教育技术学,2005年)阅读以下程序说明及程序本身,然后回答问题。

【程序说明】假如一个学生的所有课程的成绩用一个链表来存放,链表的每个节点保存一

门课程的成绩。由于成绩可以有百分制(成绩为 0~100之间的整数),也可以有 5级制(成绩为 A~E大写字母, A最高, E最低),故在定义链表节点时,增加了一个字段 type来标识该区别。

【程序】

#include

#include

Typedefstructtag_NODE{

Int type;

#defineTYPE_100 1

#defineTYPE_5 2

Union{

Int score;

Char grade;

}cj;

Struct tag_NODE *pnext; }NODE; /*FindMaxScoreAndGrade函数定义在这里,省略,待完成。 */

(1)

Voidmain(){

NODE *pHead=NULL,*pCur=NULL;

Int score,maxScore;

Char grade,maxGrade;

While(1){

/*读取成绩类型; */ Scanf(“%d”,&type); /*读取成绩 ; */ If(type==TYPE_100)

Scanf(“%d”,&score); Else if(type==TYPE_5)

Scanf(“%c”,&grade);

Else Break; /*将读取到的成绩加入到链表后面,省略,待完成。 */

(2) }; /*求出最高分和最高等级(假设两种类型的成绩在链表中都会存在) ;*/ FindMaxScoreAndGrade(pHead,&maxScore,&maxGrade);

Printf(“\nMaxScore=%d,MaxGrade=%c”,maxScore,maxGrade); }【问题】写出上面程序中位于位置( 1)、(2)处“省略,待完成”的代码段。

9.

共用体

1.

(南京师范大学,教育技术学,2005年)如下程序的运行结果是( B)

typedef union{longx[2];inty[4];charz[8];} Type;

Type type;

main()

{ printf(“%d\n”,sizeof(type)); }

A、32 B、16 C、8D、不能确定

2.

(北京大学,?年)下面关于结构类型的说法正确的是 (BCD)

A结构是一种复合数据类型,其构成元素既只能是基本数据类型(如 int、long、float等)

的变量;

B缺省条件下,编译器为结构的每个成员按其自然对界( alignment)条件分配空间;

C结构成员按照它们被声明的顺序在内存中顺序存储;

D结构第一个成员的地址和整个结构的地址相同。

3.

(湖南大学,计算机软件与理论, 2005)下述程序的执行结果是( A)

#include

unionun

{ int i;

char c[2];

}; void main() { unionunx;

x.i=0;

x.c[0]=10;

x.c[1]=1;

printf("\n%d",x.i);

}

A256 B2561 C11 D0(提示:数据在内存中是反着放置的,即高位在后,

低位在前)

枚举类型

1.

(北京大学,?年)下面关于枚举类型的说法正确的是( BCD)。 A可以为枚举元素赋值; B枚举元素可以进行比较; C枚举元素的值可以在类型定义时指定; D枚举元素可以作为常量使用。

宏定义

1.

(北京航空航天,软件学院, 2012年)下列程序的输出结果为( B)。 #defineABC(x) x*x main( ) {int a,k=3;

a=++ABC(k+1);

printf(“%d”,a);

}

A.8B.9C.14 D.17

文件操作

1.(北京航空航天,软件学院, 2012年)若要以 a+方式打开一个已经存在的文件,则下列叙述中,正确的是( A)。

A.文件被打开时,原有的文件内容不被删除,位置指针移动到文件的末尾,可进行添加和读操作

B.文件被打开时,原有的文件内容不被删除,位置指针移动到文件的开头,可进行重写和读操作

C.文件被打开时,原有的文件内容被删除,只能进行写操作

D.以上三种说法都不正确

2.(北京航空航天,软件学院, 2012年)下列程序的功能是以追加方式打开 ”file.txt”后

向文件写入“ data”,然后查看文件指针位置。(提示: ftell(*FILE)返回 long类型的文件

指针位置 )

#include

void main( )

{ FILE *fp;

long position;

fp=fopen(“file.txt”,“a”);

fprintf(fp,“data”);

position=ftell(fp);

printf(“position=%ld\n”,position);

fclose(fp);

}

3.(北京航空航天,软件学院, 2012年)下列程序的功能是打开两个已存在的文件 file1

和 file2,并将 file2拼接到 file1的后面。请在程序的空白处填入合适的内容,使程序完整。

#include

int main( )

{ FILE *fp1,*fp2;

if((fp1=fopen(“file1”,“ (1) ”))==NULL)

{ printf(“Cannot openfile1!\n”); return 0; }

if((fp2=fopen(“file2”,“ (2) ”))==NULL)

{ printf(“Cannotopenfile2!\n”); return0;}

while(!feof( (3) ))

fputc( (4) ,fp1);

fclose(fp1);

fclose(fp2);

}答: (1)a+(2)r(3) fp2(4)fgetc(fp2)

综合题

1.

(南京师范大学,教育技术学,2005年)设有定义 int a[5][5],*b[5],(*c)[5];则 a,b,c被分

别称为是(     B) A、数组、数组指针、指针数组 B、数组、指针数组、指针函数 C、数组、数组指针、函数指针 D、数组、指针数组、数组指针

2.

(湖南大学,计算机软件与理论, 2005)已知: int a,x;则正确的赋值语句是( C)。 Aa=(a[1]+a{2})/2; B a*=*a+1; C a=(x=1,x++,x+2); D a=”good”;

3.

(南京师范大学,教育技术学,2006年) C语言中,下列选项中正确的语句是:( A) Achars[8];s={“Nanjing”}; B char *s; s={“Nanjing”} C chars[8]; s=”Nanjing”; Dchar *s;s=”Nanjing”;

4.

(北京航空航天,软件学院, 2012年)下列 4个叙述中,正确的是( C)。

A.char *r=“china”;等价于 char *r; *r=“china”;

B.char *ptr=“china”;等价于 char *ptr; ptr=“china”;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值