闽高校计算机二级C语言模拟题

A)17 B)13 C)25 D)11

62..以下程序段运行结果是( ) char str[ ]={“Fujian”}; printf(“%d”, strlen(str)); A)6 B)8 C)9 D)7

63.以下程序段运行后,a的值为( ) int a=2;

a=strcmp(“miss”, “miss”);

A)true B)-1 C)0 D)1

64. 以下程序段的运行结果是( ) char a[ ]=”abcdef”; char b[ ]=”xyz” strcpy(a,b);

printf(“%c”, a[2]);

A) b B)z C)y D)c

65.若有定义:char str1[10],str2[10]=”Fujian”; 能将字符串“Fujian”赋给数组str1的正确语句是() A)strcpy(str1, str2); B)str1=”Fujian”; C)strcpy(str2, str1); D)strcopy(str1, str2);

66.以下程序段的运行结果是( ) char a[ ]=”abc ”; char b[ ]=”xyz”; char c[10]; strcpy(c,a); strcat(c,b); printf(“%s”,c);

A)xyzabc B)abc xyz C)abc D)xyz

67.以下程序的运行结果是( ) int f(int c)

{ c+=2; return c; } main( )

{ int a=2, c=5; a=f(a);

printf(“%d %d\\n”, a, c); }

A)4 4 B)2 5 C)4 5 D)2 4

68.以下程序段运行结果是( ) fun( )

{static int a=0; a++;

printf(“%d “, a); }

main( ) {int i;

for(i=1; i<=2; i++) fun( ); }

A)1 2 B)1 1 C)0 0 D)0 1

69.以下程序段的运行结果是( )。 int a=2, b=3;

int min(int a, int b) { int c;

c=a

main( ) { int a=4;

printf(“%d”, min(a,b)); }

A)3 B)2 C)4 D)2, 3

(六)指针

70.下面叙述错误的是( )

A)可以将一个整数值赋给指针变量 B)一个变量的地址称为该变量的指针 C)一个指针变量只能指向同一类型的变量

D)任何指针变量都可以与空类型NULL进行比较

71.以下程序段运行结果是( ) int x[3]={1, 2,3}; int *p; p=x;

for(p++; p<&x[2]; p++) printf(“%d “, *p);

A)3 B)2 C)2 3 D)1 2

72. 以下程序运行的结果是( ) main( )

{ char a[ ]=”137”, *p; for(p=a; p

A) 7 B)137 C)137377 D)13737

5

73.以下程序段运行后,*(p+1)的值为( ) char a[ ]=”good”; char *p; p=a;

A)a[1]的地址 B)?o? C)不确定 D)?g?

74.( )能正确定义一个指向函数的指针。 A) (int *)p( ) B)int *p( ) C) int (*p( )) D)int (*p)( )

75.以下程序段的运行结果是( ) int x[ ]={2, 3, 4, 5, 6, 7},*p=x; int i, s=0;

for(i=1; i<5; i++) s+=p[i++]; printf(“%d”, s);

A)6 B)8 C)20 D)14

76.以下程序段运行后, x的值为( ) int a[ ]={1,2,3,4,5, 6, 7,8}; int i, x, *p; x=1; p=&a[1]; for(i=0; i<3; i++) x*=*(p+i);

A)120 B)6 C)1 D)24

77.若有定义:int a[10]={0,1,2,3,4,5,6,7,8,9}, *p=a; 则( )表达式是错误的。

A)a++ B)a[2] C)p++ D)p[2]

78.若有定义

int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}, (*p)[4]; p=a; ( )对数组a元素的引用是正确的

A) *(p[2]+3) B)**(p+4) C)(**p)[4] D)*(p[4])

79.下面程序段运行后,( )对数组a元素的引用是错误的。(其中0≤i<4,0≤j<3) int i, j, (*p)[3];

int a[ ][3]={1,2,3,4,5,6,7,8,9,10,11,12}; p=a;

A)*(*(a+i)+j) B)p[i][j] C)*(*(p+i)[j] D)*(p[i]+j)

80.以下程序运行的结果是( ) main( ) { int x, y;

int *p, *q, *t; x=23; y=45; p=&x; q=&y; t=p; p=q; q=t;

printf(“%d, %d\\n”, x, y); }

A)23,45 B)45, 23 C)23, 23 D)45, 45

81. 以下程序的运行结果是( )。 main( )

{int a[3]={1,2,3}; int *num[3]; int **p, i;

for(i=0; i<3; i++) num[i]=&a[i]; p=num;

printf(“%d”, **p); }

A)1 B)3 C)num D)&a[0]

82.若有定义:int a[3][2]; 则表达式&a[2][1]-a的值为( )

A)2 B)3 C)5 D)4

(七)结构体与共用体

83.以下程序段的运行结果是( ) union

{ int num1; int num2; } s;

s.num1=20; s.num2=30;

printf(“%d”, s.num1);

A)2030 B)50 C)30 D)20

84. 若有定义: union u_type { int x; float y[3]; char z; } a;

则变量a的长度是( )

6

A)4 B)15 C)1 D)12

85.若有定义: struct teacher { int num; char sex; int age; } teacher1;

则下面叙述错误的是( ) A)teacher1是结构类型名 B)struct是结构类型的关键字

C)struct teacher是用户定义的结构类型

D)num、sex、age都是结构变量teacher1的成员

86.若有定义: struct data {char a; float b[3]; long c; }d1;

则变量d1的长度是( )

A)15 B)12 C)17 D)4

87.若有定义: struct teacher { int num;

char name[10]; char sex; int age;

} t1={2001, “Li Ming”,?M?, 35};

则下列( )对结构体变量引用是正确的 A) t1.name[0] B) t1->name[0] C) t1.name D)t1->name

88下列程序段运行后,表达式( )的值为3。 struct point {int x; int y; }*p;

struct point a[3]={1,2,3,4,5,6}; p=a;

A)*(p+2) B)p[3].x C)p[1].x D)p[2].x

(八)枚举、自定义类型和位运算

89有定义:enum num{a1,a2=3, a3, a4=10}; 则枚举常量a2, a3的值分别为( )

A)1 2 B)3 3 C)2 3 D)3 4

90若有定义:enum day{sun, mon, tue, wed, thu, fri,sat}; 则枚举常量sun、mon的值分别为( ) A)7 0 B)0 1 C)7 1 D)1 2

91若有定义:

typedef int *INTEGER; INTEGER p;

则下面叙述正确的是() A)p是一个整型变量

B)程序中可用INTEGER定义int类型指针变量 C)程序中可用INTEGER定义int类型变量 D)p是与INTEGER相同的类型

(九)文件

92下面程序运行后,文件d_f.dat的内容是( )。 main( )

{ FILE *fp; int i=10, j=20; fp=fopen(“d_f.dat”,”w”); fprintf(fp, “%d ”,i); fclose(fp);

fp=fopen(“d_f.dat”,”a”); fprintf(“%d “,j); fclose(fp); }

A)20 10 B)10 C)10 20 D)20

93 若当前工作目录下有一文本文件test.txt,其内容为“cprogram”(不包含引号),则以下程序段的运行结果是( ) FILE *fp; char *str;

if((fp=fopen(“test.dat”,”r”)!=NULL) str=fgets(str, 5, fp); printf(“%s”, str); fcolse(fp);

A)cpro B)cprog C)gram D)ogram

94()不是文件读库函数

A)fputs( ) B)fgetc( ) C)fread( ) D)fscanf( )

95下面程序运行后,屏幕显示write ok!, 则下面叙述正确的是( )。 main( )

7

{ FILE *fp;

fp=fopen(“data.txt”,”w+”); if(fp!=NULL)

{ fprintf(fp, “%s\\n”, “File write successed!\\n”); fclose(fp);

NUM n;

则( )语句是正确的

A)NUM=2 B)n=2 C)n[0]=2 D)NUM=n

99.若有定义:int a[3][4]={{1,2}{3,4}{5, 6,7}; 则printf(“write ok!\\n”); } }

A)当前工作目录下存在tata.txt文件,其中的内容是”write ok!”

B) 当前工作目录下的tata.txt文件已经打开 C) 当前工作目录下的tata.txt文件已经关闭 D) 当前工作目录下找不到tata.txt文件

96下面程序运行后,屏幕显示File open error!则可能的原因是( ) #include main( ) { FILE *fp; char str[256];

fp=fopen{“test.txt”,”r+”}; if(fp= =NULL)

{ printf(“File open error!”); return ; }

fscanf(fp, “%s”, str); fcolse(fp); }

A)当前工作目录下的test.txt文件是空文件 B)fopen( )的参数是错误的 C)test.txt文件已经打开

D)当前工作目录下没有test.txt文件

补充

97.以下程序段运行后, x的值为( )。 int a[ ]={1, 2, 3}, b[ ]={4, 3, 3}; int *p, *q; int i, x; p=a; q=b;

for(i=0; i<3; i++) if(*(p+i)==*(q+i)) x=*(p+i)*2;

A)6 B)不确定 C)2 D)4

98.若有定义

typedef int NUM[100];

a[1][1]的值为( )。

A)3 B)1 C)4 D)2

100.以下程序段运行后,s的值为( )。 int a[3][3]={1,2,3,1,2,3,1,2,3}; int i, j, s=0;

for(i=0; i<3; i++) for(j=i; j<3; j++) s+=a[i][j];

A)13 B)12 C)15 D)14

101.( )是正确的数组定义 A)int n; n=5; int arr[n]; B)int N=5, arr[N]; C)int n=5; int arr[n]; D)int arr[10];

8

联系客服:779662525#qq.com(#替换为@)