admin 管理员组

文章数量: 887675


2024年2月21日发(作者:删除表的sql命令是什么)

第一章 C语言概述

一.选择题

1.一个C程序的执行是从 。

A.程序的main函数开始,到main函数结束

B.程序文件的第一个函数开始,对本程序文件的最后一个函数结束

C.本程序的main函数开始,到本程序文件的最后一个函数结束

D.本程序文件的第一个函数开始,到本程序main函数结束

2.以下叙述正确的是 。

A.在C程序中,main函数必须位于程序的最前面

B.C程序的每行中只能写一条语句

C.C语言本身没有输入输出语句

D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误

3.以下叙述不正确的是 。

A.一个C源程序可由一个或多个函数组成

B.一个C源程序必须包含一个main函数

C.C程序的基本组成单位是函数

D.在C程序中,注释说明只能位于一条语句的后面

二.填空题

1.C源程序的基本单位是 函数 。

2.一个C源程序中至少应包括一个 主函数或main函数 。

3.在一个C源程序中,注释部分两侧的分界符分别为 /* 和 */ 。

1

第二章 数据的存储与运算

一.选择题

1.若x、i、j和k都是int型变量,则计算下面表达式后,x的值为 。

x=(i=4,j=16,k=32)

A.4 B.16 C.32 D.48

2.下面正确的字符常量是 。

A.”c” B.’’’ C.’W’ D.’’

3.下面不正确的字符串常量是 。

A.’abc’ B.”12’12” C.”0” D.” “

4.以下正确的叙述是 。

A.在C程序中,每行中只能写一条语句

B.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值

C.在C程序中,无论是整数还是实数,都能被准确无误地表示

D.在C程序中,%是只能用于整数运算的运算符

5.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=’A’+’6’-‘3’后c2中的值为 。

A.D B.68 C.不确定的值 D.C

6.若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是

A.2.500000 B.2.7500000 C.3.500000 D.0.000000

7.设变量a是整型,f是实型,I是双精度型,则表达式10+’a’+I*f值的数据类 2

型为 。

A.int B.float C.double D.不确定

8.表达式18/4*sqrt(4.0)/8值的数据类型为 。

A.int B.float C.double D.不确定

9.设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为 。

A.0~255 B.0~32767 C.0~65535 D.0~2147483647

10.设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为

A.float B.char C.int D.double

11.设以下变量均为int类型,则值不等于7的表达式是 。

A.(x=y=6,x+y,x+1) B.(x=y=6,x+y,y+1)

C.(x=6,x+1,y=6,x+y) D.(y=6,y+1,x=y,x+1)

12.在C语言中,要求运算数必须是整型的运算符是 。

A./ B.++ C.!= D.%

二.填空题

1.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为 字母或者下划线 。

2.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是 8 。

3.若s是int型变量,且s=6,则下面表达式的值为 1 。

s%2+(s+1)%2

4.若a是int型变量,则下面表达式的值为 26 。

3

(a=4*5,a*2),a+6

5.若x和a均是int型变量,则计算表达式(1)后的x值为 12 ,计算表达式(2)的x值为 4 。

(1) x=(a=4,6*2)

(2) x=a=4,6*2

6.若a是int型变量,则计算表达式后a的值为 2 。

a=25/3%3

7.若有定义:int b=7;float a=2.5,c=4.7;则下面表达式的值为 5.5 。

a+(int)(b/3*(int)(a+c)/2)%4

8.若有定义:int a=2,b=3;float x=3.5,y=2.5;则下面表达式的值为 3.5 。

(float)(a+b)/2+(int)x%(int)y

9.假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为 9 。

10.已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=’a’+’8’-‘3’的值为 f 。

11.表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为 int 。

第三章 最简单的C程序设计——顺序程序设计

一.选择题

1.putchar函数可以向终端输出一个 。

A.整型变量表达式值 B.实型变量值

C.字符串 D.字符或字符型变量值

2.以下程序的输出结果是 。

printf(“n*s1=%15s*”,”chinabeijing”);

4

printf(“n*s2=%-5s*”,”chi”);

A.*s1=chinabeijing___* B.*s1=chinabeijing___*

*s2=**chi* *s2=chi__*

C.*s1=___chinabeijing* D.*s1=___chinabeijing*

*s2=__chi* *s2=chi__*

3.Printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出格式 B ;如果字符串长度小于5,则输出格式 A 。

A.从左起输出该字串,右补空格 B.按原字符长从左向右全部输出

C.右对齐输出该字串,左补空格 D.输出错误信息

4.阅读以下程序,当输入数据的形式为:25,13,10,正确的输出结果为

main()

{

int x,y,z;

scanf(“%d%d%d”,&x,&y,&z);

printf(“x+y+z=%dn”,x+y+z);

}

A.x+y+z=48 B.x+y+z=35 C.x+z=48 D.不确定值

5.设x、y和z均为int型变量,则执行语句x=(y=(z=10)+5)-5;后x、y和z的值是 。

A.x=10 B.x=10 C.x=10 D.x=10

y=15 y=10 y=10 y=5

5

z=10 z=10 z=15 z=10

6.有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b为3,c为2,

从键盘输入数据的正确形式应当是 。

A.132 B.1,3,2 C.a=1_b=3_c=2 D.a=1,b=3,c=2

二.填空题

1.以下程序的输出结果为 *3.140000,3.142* 。

main()

{ printf(“*%f,%4.3f*n”,3.14,3.1415);}

2.以下程序的输出结果是 x=1,y=2,sum=3 。

main()

{ int x=1,y=2;

printf(“x=%d,y=%d,sum=%dn”,x,y,x+y);

}

3.若x为int型变量,则执行以下语句后x的值是 -14 。

x=7;

x+=x-=x+x;

第四章 选择结构程序设计

一.选择题

1.以下关于运算符优先顺序的描述正确的是__ ___。

A)关系运算符<算术运算符<赋值运算符<逻辑与运算符

B)逻辑与运算符<关系运算符<算术运算符<赋值运算符

6

C)赋值运算符<逻辑与运算符<关系运算符<算术运算符

D)算术运算符<关系运算符<赋值运算符<逻辑与运算符

2.能正确表示”当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是__ ___。

A)(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)

B) (x>=1) || (x<=10) || (x>=200) || (x<=210)

C) (x>=1)&&(x<=10) || (x>=200)&&(x<=210)

D) (x>=1) || (x<=10)&&(x>=200) || (x<=210)

3.设x、y和z是int 型变量,且x=3,y=4,z=5,则下面表达式中值为0的是__ ___。

A)’x’&&’y’

B)x<=y

C)x || y+z&&y-z

D)! ((x

4.设有:int a=1,b=2,c=3,d=4,m=2,n=2;

执行(m=a>b) && (n=c>d)后n的值为__ ___。

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

5.若w=1,x=2,y=3,z=4,则条件表达式w

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

6.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是__ ___。

if(a

if(c

else

if(a

7

if(b

else x=3;

else x=6;

else x=7;

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

二.填空题

1.当 a=3,b=2,c=1时,表达式f=a>b>c 的值是__0__。

2.有int a=3,b=4,c=5,x,y;,则以下表达式的值为__ 0__。

! (x=a)&&(y=b)&&0

3.以下程序对输入两个整数,按从大到小顺序输出.请在______内填入正确内容.

main()

{

int x,y,z;

scanf(“%d,%d”,&x,&y);

if (_ x

{z=x; x=y;y=z; }

pringf(“%d,%d”,x,y);

}

}

三.读程序题

1. 有以下程序

void main()

{int x,y,z,t;

scanf(“%d,%d,%d”,&x,&y,&z);

8

if(x>y) {t=x;x=y;y=t;}

if(x>z) {t=x;x=z;z=t;}

if(y>z) {t=y;y=z;z=t;}

printf(“%d,%d,%d”,x,y,z);

}

若输入数据 98,32,56 则输出结果为_ 32,56,98 __。

2.请读程序:

#include

void main()

{ int x=1, y=0,a=0,b=0;

switch(x)

{case 1:

switch(y)

{case 0:a++;break;

case 1:b++;break;

}

case 2:

a++; b++; break;

}

prinf(“a=%d,b=%d”,a,b);

}

上面程序的运行结果是_ a=2,b=1 _。

9

第五章 循环结构程序设计

一.选择题

1.C语言中while和do-while 循环的主要区别是__ __。

A) do-while 的循环体至少无条件执行一次

B) while 的循环控制条件比do-while 的循环控制条件严格

C) do-while 允许从外部转到循环体内

D) do-while 的循环体不能是复合语句

2.有如下程序

main0

{ int i,sum;

for(i=1;i<=3;sum++) sum+=i;

printf(“%dn”,sum);

}

该程序的执行结果是_ _。

A) 6 B) 3 C) 死循环 D) 0

3.有如下程序

void main()

{ int x=23;

do

{ printf("%d",x--);}

while(!x);

}

该程序的执行结果是_ __。

A) 321 B) 23 C) 不输出任何内容 D)

4. 有如下程序

main0

{ int n=9;

while(n>6) {n--;printf(“%d”,n);}

10

陷入死循

}

该程序段的输出结果是_ ___。

A) 987 B) 876 C) 8765 D) 9876

5.有以下程序段

int k=0

while(k==1)k++;

while 循环执行的次数是__ __。

A) 无限次 B) 有语法错,不能执行

C) 一次也不执行 D) 执行1次

6.以下程序执行后sum的值是__ __。

main()

{ int i , sum=0;

for(i=1;i<6;i++) sum+=i;

}

printf(“%dn”,sum);

A)15 B)14 C) 不确定 D)0

7.有以下程序段

int x=3;

Do

printf("%d",x-=2);

while (!(--x));其输出结果是_ ___。

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

二.填空题

1.下面程序的功能是:计算1到10之间奇数之和及偶数之和,请填空。 #include

void main()

{ int a, b, c, i;

11

死循环

a=c=0;

for(i=0;i<=10;i+=2)

{ a+=i;

b=i+1 ;

c+=b;

}

printf("%dn",a);

printf("%dn",c-11);

}

2.设有以下程序:

main()

{ int n1,n2;

scanf(“%d”,&n2);

while(n2!=0)

{ n1=n2%10;

n2=n2/10;

printf(“%d”,n1);

}

}

程序运行后,如果从键盘上输入1298;则输出结果为_89210 __。

3.以下程序运行后的输出结果是_ 52 __。

void main()

{ int i=10, j=0;

do

{ j=j+i; i--;

}

while(i>2);

printf(“%dn”,j);

}

第六章 利用数组处理批量数据

一.选择题

1.在C语言中,引用数组元素时,其数组下标的数据类型允许是_ __。

12

A) 整型常量 B) 整型表达式

C) 整型常量或整型表达式 D) 任何类型的表达式

2.若有说明:int a[10];则对a数组元素的正确引用是_ __。

A) a[10] B) a[3.5] C) a(5) D) a[10-10]

3.若有说明:int a[3] [4];则对a数组元素的正确引用是_ __。

A) a[2] [4] B) a[1,3] C) a [1+1] [0] D) a (2)

(1)

4.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为_ __。(设a[0][0]位于数组的第一个位置上)

A)i*m+j B)j*m+i C)i*m+j-1 D)i*m+j+1

5.若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维大小是_ __。

A)2 B)3 C)4 D)无确定值

6.判断字符串a和b是否相等,应当使用_ __。

A)if (a==b) B)if (a=b)

C)if (strcpy(a,b)) D) if (strcmp(a,b))

二.填空题

1.下面程序可求出矩阵a的主对角线上的元素之和。请填空

void main()

{ int a[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;

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

for(j=0; j<3; j++)

if(_ i==j _) sum=sum+_ a[i][j] _

printf(“sum=%dn”,sum);

}

2.下面程序的运行结果是_The index is:6___。

void main()

{

int a[9]={0,6,12,18,42,44,52,67,94};

13

int x=52,i,n=9,m;

i=n/2+1;

m=n/2;

while(m!=0)

{if (x

{i=i-m/2-1;m=m/2;}

else if(x>a[i])

{i=i+m/2+1;m=m/2;}

else break;}

printf(“The index is:%d”,i);

}

第七章 用函数实现模块化程序设计

一.选择题

1.以下正确的函数定义形式是 。

A.double fun(int x,int y)

B.double fun(int x;int y)

C.double fun(int x,int y);

D.double fun(int x,y);

2.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是 。

A.地址传递

B.单向值传递

C.由实参传给形参,再由形参传回给实参

14

D.由用户指定传递方式

3.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是 。

A.float型

B.int型

C.long型

D.double型

4.C语言规定,函数返回值的类型是由 。

A.return语句中的表达式类型所决定

B.调用该函数时的主调函数类型所决定

C.调用该函数时系统临时决定

D.在定义该函数时所指定的函数类型所决定

5.以下程序的正确运行结果是 。

main()

{

int a=2,I;

for(I=0;I<3;I++) printf(“d”,f(a))

}

f(int a)

{

int b=0;static int c=3;

b++;c++;

return(a+b+c);

}

15

A.7 7 7

B.7 10 13

C.7 9 11

D.7 8 9

6.若用数组名作为函数调用的实参,传递给形参的是 。

A.数组的首地址

B.数组第一个元素的值

C.数据中全部元素的值

D.数组元素的个数

二.填空题

1.下面程序的运行结果是 15 。

main()

{int I=5;

printf(“%dn”,sub(i));

}

sub(int n)

{int a;

if(n==1) return 1;

a=n+sub(n-1);

return(a);

}

2.以下程序可计算10 名学生1门课成绩的平均分,请填空float average(float array[])

16

{ int I;float aver,sum=array[0];

for(I=1; I<10 ;I++) sum+= array[I] ;

aver=sum/10;

return(aver);

}

main()

( float score[10],aver;int I;

printf(“ninput 10 scores:”);

for(I=0;I<10;I++) scanf(“%f”,&score[I]);

aver= average(score)

printf(“naverage score is %5.2fn”,aver);

}

3.以下程序的运行结果是 8 。

int a=3,b=5;

max(a,b)

{ int c;

c=a>b?a:b;

return(c);

}

main()

{int a=8;

printf(“%d”,max(a,b));

}

17

4.以下程序的运行结果是 123 。

main()

{ increment();

increment();

increment();

}

increment()

{static int x=0;

x+=1;

printf(“%d”,x);

}

5.以下程序的运行结果是 s=120 。

int fac(int n)

{static int f=1;

f=f*n;

return(f);

}

main()

{ int I,s;

for(I=1;I<=5;I++) s=fac(I);

printf("s=%d",s);

}

18

第八章 善于使用指针

一.选择题

1.以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是 。

void main()

{ int *p,*q,a,b;

p=&a;

printf(“input a:”);

scanf(“%d”,*p);

„„

}

A.*p表示的是指针变量的地址

B.*p表示的是变量a的值,而不是变量a的地址

C.*p表示的是指针变量p的值

D.*p只能用来说明p是一个指针变量

2.变量的指针,其含义是指该变量的 。

A.值

B.地址

C.名

D.一个标志

3.下面程序的运行结果是 。

# include

main()

19

{ char a[]=”Language”, b[]=”programe”;

char p1,p2; int k;

p1=a;p2=b;

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

if(*(p1+k)==*(p2+k)) printf(“%c”,*(p1+k));

}

A.gae

B.ga

C.Language

D.有语法错

4.若有以下定义,则对a数组元素的正确引用是 。

int a[5],*p=a;

A.*&a[5]

B.a+2

C.*(p+5)

D.*(a+2)

5.若有以下定义,则对a数组元素地址的正确引用是 。

int a[5],*p=a;

A.p+5

B.*a+1

C.&a+1

D.&a[0]

6.若有定义:int a[2][3];则对a数组的第i行第j列(假设I,j已正确说明并赋 20

值)元素值的正确引用为 。

A.*(*(a+i)+j)

B.(a+i)[j]

C.*(a+i+j)

D.*(a+i)+j

7.若有以下定义和语句,则对a数组元素地址的正确引用为 。

int a[2][3],(*p)[3];

p=a;

A.*(p+2)

B.p[2]

C.p[1]+1

D.(p+1)+2

8.若有定义:int (*p)[4],则标识符p 。

A.是一个指向整型变量的指针

B.是一个指针数组名

C.是一个指针,它指向一个含有四个整型元素的一维数组

D.定义不合法

9.若有以下定义,则*(p+5)表示 。

int a[10],*p=a;

A.元素a[5]的地址

B.元素a[5]的值

C.元素a[6]的地址

D.元素a[6]的值

21

10.若有函数max(a,b),并且已使函数指针变量p指向函数max,当调用该函数时,正确的调用方法是 。

A.(*p)max(a,b);

B.*pmax(a,b);

C.(*p)(a,b);

D.*p=max(a,b);

二.填空题

1.下面程序的运行结果是 a=7,b=5 。

swap(int *p1,int *p2)

{int p;

p=*p1;*p1=*p2;*p2=p;

}

void main()

{ int a=5,b=7,*ptr1,*ptr2;

ptr1=&a;ptr2=&b;

swap(ptr1,ptr2);

printf(“a=%d,b=%dn”,a,b);

}

2.若输入的值分别是1,3,5,下面程序的运行结果是 15 。

main()

{ int a=0,I,*p,sum;

p=&a;

for(I=0;I<=2;I++)

22

{ scanf(“%d”,p);

sum=s(p);

}

printf(“sum=%dn”,sum);

}

s(int *p)

{ int sum=10;

sum=sum+*p;

return(sum);

}

3.以下程序的运行结果是 0136 。

void main()

{ int I,k;

for(I=0;I<4;I++)

{ k=sub(&I);

printf(“%d”,k);

}

sub(int *s)

{ static int t=0;

t=*s+t;

return t;

}

23

4.若有以下定义和语句:

int a[4]={0,1,2,3},*p;

p=&a[1];

则++(*p)的值是 2 。

5.下列程序的运行结果是: efgh 。

#include

char *ss(char *s)

{ return s+strlen(s)/2;}

main( )

{ char *p,*str=”abcdefgh”;

p=ss(str); printf(“%sn”,p);

}

第九章 使用结构体类型处理组合数据——用户自定义数据类型

一.选择题

已知学生记录描述为

struct student

{ int num;

struct

{int year

} birth;

}s;

设变量s中的 “年份”应是1984年,下列对“年份”的正确赋值方式 24

是 。

A.year=1984

B.=1984

C.=1984

D.=1984

2.当说明一个结构体变量时系统分配给它的内存 。

A.各成员所需内存量的总和

B.结构中第一个成员所需内存量

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

D.结构中最后一个成员所需内存量

3.下面程序的运行结果是 。

main()

{ struct cmplx { int x;

int y;

} cnum[2]={1,3,2,7};

printf(“%dn”,cnum[0].y/cnum[0].x*cnum[1].x);

}

A.0

B.1

C.3

D.6

4.若有以下说明和语句:

struct student

25

{ int age;

int num;

} std,*p;

p=&std;

则以下对结构体变量std中成员age的引用方式不正确的是 。

p->age

(*p).age

*

5.当说明一个共用体变量时系统分配给它的内存是 。

A.各成员所需内存量的总和

B.结构中第一个成员所需内存量

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

D.结构中最后一个成员所需内存量

二.填空题

1.下面程序的运行结果是 10,x 。

struct n{

int x;

char c;

};

main()

{ struct n a={10,’x’};

func(a);

26

printf(“%d,%c”,a.x,a.c);

}

func(struct n b)

{ b.x=20;

b.c=’y’;

}

2.以下程序段的功能是统计链表中结点的个数,其中first为指向第一个结点的指针(链表不带结点)。请在 中填入正确内容。

struct link

{ char data;

struct link *next;

};

„„

struct link *p,*first;

int c=0;

p=first;

while( )

{ ;

p= ;

}

3.写出下列程序的输出结果 。

enum coin{ penny,nickel,dime,quarter,half_dollar,dollar};

char

27

*name[]={“penny”,”nickel”,”dime”,”quarter”,”half_dollar”,”dollar”};

main()

{

enum coin money1,money2;

money1=dime;

money2=dollar;

printf(“%d%d”,money1,money2);

printf(“%s%sn”,name[(int)money1], name[(int)money2]);

}

第十章 利用文件保存数据

一.选择题

1. 以下可作为函数fopen中第一个参数的正确格式是 。

A.c:

B.c:

C.”c:”

D.”c:

2.若以“a+”方式打开一个已存在的文件,则以下叙述正确的是 。

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

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

28

C.文件打开时,原有文件内容被删除,只可作写操作

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

3.fscanf函数的正确调用形式是 。

A.fscanf(fp,格式字符串,输出表列);

B.fscanf(格式字符串,输出表列,fp);

C.fscanf(格式字符串,文件指针,输出表列);

D.fscanf(文件指针,格式字符串,输入表列);

4.函数调用语句:fseek(fp,-20L,2);的含义是 。

A.将文件位置指针移到距离文件头20个字节处

B.将文件位置指针移从当前位置向后移动20个字节

C.将文件位置指针从文件末尾处向后退20个字节

D.将文件位置指针移到离当前位置20个字节处

5.函数rewind的作用是 。

A.使位置指针重新返回文件的开头

B.将位置指针指向文件中所要求的特定位置

C.使位置指针指向文件的末尾

D.使位置指针自动移至下一个字符位置

二.填空题

1.在C程序中,文件可以用 方式存取,也可以用 方式存取。

2.在C程序中,数据可以用 和 两种代码形式存放。

3.下面程序用变量count统计文件中字符的个数。请在 处填入适当内容。

# include

main()

29

{ FILE *fp; long count=0;

if((fp=fopen(“”, ))==NULL)

{ printf(“cannot open filen”);exit(0);}

while (!feof(fp)) { ; ;}

printf(“count=%ldn”,count);

fclose(fp);

}

30


本文标签: 程序 函数 文件