admin 管理员组

文章数量: 1184232


2024年3月7日发(作者:计算机都有dubbo协议吗)

精品文档

一、 选择题

1.结构化程序设计的3种结构是(D)

A)顺序结构、选择结构、转移结构

B)分支结构、等价结构、循环结构

C)多分支结构、赋值结构、等价结构

D)顺序结构、选择结构、循环结构

2.以下叙述中正确的是(C)

A)C语言比其他语言高级

B)C语言可以不用编译就能被计算机识别执行

C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式

D)C语言出现的最晚,具有其他语言的一切优点

3.C语言中用于结构化程序设计的3种基本结构是(A)

A)顺序结构、选择结构、循环结构

B)if,switch,break

C)for,while,do-while

D)if,for,continue

4.C语言中最简单的数据类型包括(B)

A)整型、实型、逻辑型

B)整型、实型、字符型

C)整型、字符型、逻辑型

D)字符型、实型、逻辑型

5.若变量已正确定义并赋值,以下符合C语言语法的表达式是(B)

A)a:=b+1

B)a=b=c+2

C)int 18.5%3

D)a=a+7=c+b

6.下列可用于C语言用户标识符的一组是(B)

A)void, define, WORD

B)a3_b3, _123,Car

C)For, -abc, IF Case

D)2a, DO, sizeof

7.C语言中运算对象必须是整型的运算符是(A)

A)%=

B)/

C)=

D)<=

.

精品文档

8.若变量a,i已正确定义,且i已正确赋值,合法的语句是(B)

A)a= =1

B)++i;

C)a=a++=5;

D)a=int(i);

9.已知

int t=0;

while (t=1)

{...}

则以下叙述正确的是(B)

A)循环控制表达式的值为0

B)循环控制表达式的值为1

C)循环控制表达式不合法

D)以上说法都不对

10.若变量已正确说明为float型,要通过语句

scanf("%f%f%f",&a,&b,&c);

给a赋予10.0,b赋予22.0,c赋予33.0,下列不正确的输入形式是(B)

A)10<回车>22<回车>33<回车>

B)10.0,22.0,33.0<回车>

C)10.0<回车>22.0<空格>33.0<回车>

D)10<<空格>>22<回车>33<回车>

11.有如下程序:

main()

{

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

switch(x)

{

case 0: b++;

case 1: a++;

case 2: a++;b++;

}

printf("a=%d,b=%d\n",a,b);

}

该程序的输出结果是(A)

A)a=2,b=1

B)a=1,b=1

C)a=1,b=0

D)a=2,b=2

12.有以下程序

main()

.

精品文档

{

int i=1,j=1,k=2;

if((j++||k++)&&i++)

printf("%d,%d,%dn",i,j,k);

}

执行后输出结果是(C)

A)1,1,2

B)2,2,1

C)2,2,2

D)2,2,3

13.

有如下程序

main()

{

float x=2.0,y;

if(x<0.0)y=0.0;

else if(x<10.0)y=1.0/x;

else y=1.0;

printf("%fn",y);

}

该程序的输出结果是(C)

A)0.000000

B)0.250000

C)0.500000

D)1.000000

14.有如下程序:

main()

{

int n=9;

while(n>6)

{

n--;

printf("%d",n);

}

}

该程序的输出结果是(B)

A)987

B)876

C)8765

D)9876

15.在下列选项中,没有构成死循环的是(D)

.

精品文档

A) int i=100;

while(1)

{

i=i 0+1;

if(i>100)break;

}

B) for(;;);

C) int k=10000;

do{

k++;

}while(k>10000);

D) int s=36;

while(s)--s;

16.设int x=1,y=1;表达式(!x||y--)的值是(B)

A)0

B)1

C)2

D)-1

17.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是(D)

A)函数调用可以作为独立的语句存在

B)函数调用可以作为一个函数的实参

C)函数调用可以出现在表达式中

D)函数调用可以作为一个函数的形参

18.有以下程序

float fun(int x,int y)

{

return(x+y);

}

main()

{

int a=2,b=5,c=8;

printf("%3.0fn",fun((int)fun(a+c,b),a-c));

}

程序运行后的输出结果是(B)

A)编译出错

B)9

C)21

D)9.0

19.若有以下调用语句,则不正确的fun函数的首部是(D)

main()

.

精品文档

{

int a[50],n;

fun(n,&a[9]);

}

A)void fun(int m,int x[])

B)void fun(int s,int h[41])

C)void fun(int p,int *s)

D)void fun(int n,int a)

20.fseek函数的正确调用形式是(B)

A)fseek(文件指针,起始点,位移量)

B)fseek(文件指针,位移量,起始点)

C)fseek(位移量,起始点,文件指针)

D)fseek(起始点,位移量,文件指针)

21.若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是(C)

A)EOF

B)-1

C)1

D)NULL

22.若有说明语句:char c='72';则变量c (A)

A)包含1个字符

B)包含2个字符

C)包含3个字符

D)说明不合法,c的值不确定

23.若有说明 int a[3][4];则a数组元素的非法引用是(D)

A)a[0][2*1]

B)a[1][3]

C)a[4-2][0]

D)a[0][4]

24.设有以下说明语句

struct stu

{

int a;

float b;

}stutype;

则下面的叙述不正确的是(C)

A)struct是结构体类型的关键字

.

精品文档

B)struct stu是用户定义的结构体类型

C)stutype是用户定义的结构体类型名

D)a和b都是结构体成员名

25.在C语言中,引用数组元素时,其数组下标的数据类型允许是(C)

A)整型常量

B)整型表达式

C)整型常量或整型表达式

D)任何类型的表达式

26.若运行时给变量x输入12,则以下程序的运行结果是(A)

main()

{

int x,y;

scanf("%d",&x);

y=x>12?x+10:x-12;

printf("%dn",y);

}

A)0

B)22

C)12

D)10

27.以下说法正确的是(C)

A)C语言程序总是从第一个的函数开始执行

B)在C语言程序中,要调用函数必须在main()函数中定义

C)C语言程序总是从main()函数开始执行

D)C语言程序中的main()函数必须放在程序的开始部分

28.表达式0x13^0x17的值是(A)

A)0x04

B)0x13

C)0xE8

D)0x17

29.有以下程序

main()

{

int a=3, b=4;

printf("%d\n", (a++)*(b++));

}

程序运行后的输出结果是 (A)

A)12

B)15

.

精品文档

C)16

D)20

30.下列程序执行后的输出结果是(A)

void func(int *a,int b[])

{

b[0]=*a+6;

}

main()

{

int a,b[5];

a=0; b[0]=3;

func(&a,b);

printf("%d\n",b[0]);

}

A)6

B)7

C)8

D)9

31.若有下面的程序段:

char s[]="china";char *p; p=s;

则下列叙述正确的是(D)

A)s和p完全相同

B)数组s中的内容和指针变量p中的内容相等

C)s数组长度和p所指向的字符串长度相等

D)*p与s[0]相等

32.以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序

void sort(int a[],int n)

{

int i,j,t;

for(i=0;i

for(j=i+1;j

if(a[i]

{

t=a[i];

a[i]=a[j];

a[j]=t;

}

}

main()

{

int aa[10]={1,2,3,4,5,6,7,8,9,10},i;

.

精品文档

sort(&aa[3],5);

for(i=0;i<10;i++)printf("%d,",aa[i]);

printf("n");

}

程序运行后的输出结果是(C)

A)1,2,3,4,5,6,7,8,9,10,

B)10,9,8,7,6,5,4,3,2,1,

C)1,2,3,8,7,6,5,4,9,10,

D)1,2,10,9,8,7,6,5,4,3,

33.以下程序的运行结果是(A)

struct date

{int year,month,day;}today;

main()

{

printf("%d\n",sizeof(struct date));

}

A)6

B)8

C)10

D)12

34.若有语句int *point,a=4;和 point=&a;下面均代表地址的一组选项是(D)

A)a,point,*&a

B)&*a,&a,*point

C)*&point,*point,&a

D)&a,&*point,point

35.在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是(B)

A)地址传递

B)单向值传递

C)由实参传形参,再由形参传实参

D)传递方式由用户指定

36.fun(char *p2, char *p1)

{

while((*p2=*p1)!='0'){p1++;p2++;}

}

函数的功能是(A)

A)将p1所指字符串复制到p2所指内存空间

B)将p1所指字符串的地址赋给指针p2

C)对p1和p2两个指针所指字符串进行比较

D)检查p1和p2两个指针所指字符串中是否有'0'

.

精品文档

37.若执行下述程序时,若从键盘输入6和8时,结果为(B)

main()

{

int a,b,s;

scanf("%d%d",&a,&b);

s=a

if(a

s=b;

s*=s;

printf("%d",s);

}

A)36

B)64

C)48

D)以上都不对

38.fscanf函数的正确调用形式是(D)

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

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

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

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

39.下列关于C语言数据文件的叙述中正确的是(D)

A)文件由ASCII码字符序列组成,C语言只能读写文本文件

B)文件由二进制数据序列组成,C语言只能读写二进制文件

C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件

D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

40.有以下程序

void ss(char *s,char t)

{

while(*s)

{

if(*s==t)

*s=t-'a'+'A';

s++;

}

}

main()

{

char str1[100]="abcddfefdbd",c='d';

.

精品文档

ss(str1,c); printf("%sn",str1);

}

程序运行后的输出结果是(B)

A)ABCDDEFEDBD

B)abcDDfefDbD

C)abcAAfefAbA

D)Abcddfefdbd

41.struct link

{

int data;

struct link *next;

}a,b,c,*p,*q;

且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。

则能够把c插入到a和b 之间并形成新的链表的语句组是:(D)

A)=c; =b;

B)=q; =;

C)p->next=&c; q->next=p->next;

D)(*p).next=q; (*q).next=&b;

42.在设计程序时,应采纳的原则之一是(D)

A)不限制goto语句的使用

B)减少或取消注解行

C)程序越短越好

D)程序结构应有助于读者理解

43.程序设计语言的基本成分是数据成分、运算成分、控制成分和(D)

A)对象成分

B)变量成分

C)语句成分

D)传输成分

44.下列不属于软件工程的3个要素的是(D)

A)工具

B)过程

C)方法

D)环境

45.下列叙述中正确的是(D)

A)C语言编译时不检查语法

B)C语言的子程序有过程和函数两种

C)C语言的函数可以嵌套定义

D)C语言的函数可以嵌套调用

.

精品文档

46.在C语言中,退格符是(D)

A)\n

B)\t

C)\f

D)\b

48.以下叙述中正确的是 (A)

A)构成C程序的基本单位是函数

B)可以在一个函数中定义另一个函数

C)main()函数必须放在其他函数之前

D)所有被调用的函数一定要在调用之前进行定义

49.在C程序中,判逻辑值时,用"非0"表示逻辑值"真", 又用"0"表示逻辑值"假"。 在求逻辑值时,用(A)分别表示逻辑表达式值为"真"和"假"。

A)1 0

B)0 1

C)非0 非0

D)1 1

50.在C语言中,运算对象必须是整型数的运算符是(A)

A)%

B)\

C)%和\

D)**

51.字符型数据在机器中是用ASCII码表示的,字符"5"和"7"在机器中表示为(C)

A)10100011和 01110111

B)01000101和01100011

C)00110101和00110111

D)01100101和01100111

52.若已定义:int a=25,b=14,c=19;以下三目运算符(?:)所构成语句的执行后

a<=25&&b--<=2&&c?printf("***a=%d,b=%d,c=%dn",a,b,c):printf("###a=%d,b=%d,c=%dn",a,b,c);程序输出的结果是(C)

A)***a=25,b=13,c=19

B)***a=26,b=14,c=19

C)### a=25,b=13,c=19

D)### a=26,b=14,c=19

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

A)2.500000

B)2.750000

.

精品文档

C)3.500000

D)0.000000

54.下列程序段的输出结果是:(C)

int a=1234;

float b=123.456;

double c=12345.54321;

printf("-,%2.1f,%2.1f",a,b,c);

A)无输出

B)12,123.5,12345.5

C)1234,123.5,12345.5

D)1234,123.4,1234.5

55.若运行以下程序时,从键盘输入 ADescriptor(表示回车),则下面程序的运行结果是(D)

#include

main()

{

char c;

int v0=1,v1=0,v2=0;

do{

switch(c=getchar())

{

case 'a':

case 'A':

case 'e':

case 'E':

case 'i':

case 'I':

case 'o':

case 'O':

case 'u':

case 'U':v1+=1;

default:v0+=1;v2+=1;

}

}while(c!='n');

printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);

}

A)v0=7,v1=4,v2=7

B)v0=8,v1=4,v2=8

C)v0=11,v1=4,v2=11

D)v0=13,v1=4,v2=12

56.设有以下程序段

.

精品文档

int x=0,s=0;

while(!x!=0)

s+=++x;

printf("%d",s);

则(B)

A)运行程序段后输出0

B)运行程序段后输出1

C)程序段中的控制表达式是非法的

D)程序段执行无限次

57.执行下面的程序段后,变量k中的值为(A)

int k=3, s[2];

s[0]=k; k=s[1]*10;

A)不定值

B)33

C)30

D)10

58.以下程序段的描述,正确的是(C)

x=-1;

do

{x=x*x;}

while(!x);

A)是死循环

B)循环执行两次

C)循环执行一次

D)有语法错误

59.以下有错误的是(D)

A)

main()

{

int x,y,z;

x=0;y=x-1;

z=x+y;

}

B)

main()

{

int x,y,z;

x=0,y=x+1;

z=x+y;

}

C)

.

精品文档

main()

{

int x;int

int y;

x=0,y=x+1;

z=x+y;

}

D)

main()

{

int x,y,z;

x=0;y=x+1;

z=x+y,

}

60.有如下程序段

int a=14,b=15,x;

char c='A';

x=(a&&b)&&(c<'B');

执行该程序段后,x的值为(D)

A)ture

B)false

C)0

D)1

61.下列程序执行后的输出结果是(C)

void func1(int i);

void func2(int i);

char st[]="hello,friend!";

main()

{

int i=0;

func1(i);

printf("n");

}

void func1(int i)

{

printf("%c",st[i]);

if(i<3)

{

i+=2;

func2(i);

}

}

.

精品文档

void func2(int i)

{

printf("%c",st[i]);

if(i<3)

{

i+=2;

func1(i);

}

}

A)hello

B)hel

C)hlo

D)hlm

62.以下函数返回数组a中最大值所在的下标值

fun(int *a,int n)

{

int i,j=0,p;

p=j;

for(i=j;i

if(a[i]>a[p])

;

return(p);

}

在下划线处应填入的内容是(D)

A)i=p

B)a[p]=a[i]

C)p=j

D)p=i

63.下面说明不正确的是(D)

A)char a[10]="china";

B)char a[10],*p=a;p="china"

C)char *a;a="china";

D)char a[10],*p;p=a="china"

64.以下程序的输出结果是(B)

#include

void prt(int *x,int *y,int *z)

{

printf("%d,%d,%d\n",++*x,++*y,*(z++));

}

main()

{

.

精品文档

int a=10,b=40,c=20;

prt(&a,&b,&c);

prt(&a,&b,&c);

}

A)11,42,31

12,22,41

B)11,41,20

12,42,20

C)11,21,40

11,21,21

D)11,41,21

12,42,22

65.若有函数内部说明:int a[3][4];则数组a中各元素(C)

A)可在程序的运行阶段得到初值0

B)可在程序的编译阶段得到初值0

C)不能得到确定的初值

D)可在程序的编译或运行阶段得到初值0

66.有如下程序

main()

{

char s[]="ABCD",*p;

for(p=s+1;p

printf("%sn",p);

}

该程序的输出结果是(D)

A) ABCD

BCD

CD

D

B) A

B

C

D

C) B

C

D

D) BCD

CD

D

.

精品文档

67.下列程序执行后的输出结果是(B)

main()

{

int a[3][3],*p,i;

p=&a[0]]0];

for(i=1; i<9; i++)p[i]=i+1;

printf("%dn",a[1][2]);

}

A)3

B)6

C)9

D)随机数

68.定义如下变量和数组:

int k;

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

则下面语句的输出结果是(B)

for(k=0;k<3;k++)printf("%d",a[k][k]);

A)7 5 3

B)9 5 1

C)9 6 3

D)7 4 1

69.下列程序执行后的输出结果是(A)

main()

{

char arr[2][4];

strcpy(arr,"you"); strcpy(arr[1],"me");

arr[0][3]=′&′;

printf("%s\n",arr);

}

A)you&me

B)you

C)me

D)err

70.有以下函数

char fun(char *p){return p;}

该函数的返回值是(B)

A)无确切的值

B)形参p中存放的地址值

C)一个临时存储单元的地址

D)形参p自身的地址值

.

精品文档

71.以下正确的说法是(C)

A)定义函数时,形参的类型说明可以放在函数体内

B)return后边的值不能为表达式

C)如果函数值的类型与返回值类型不一致,以函数值类型为准

D)如果形参与实参类型不一致,以实参类型为准

72.有以下程序

int f(int n)

{

if(n==1)return 1;

else return f(n-1)+1;

}

main()

{

int i,j=0;

for(i=1;i<3;i++)j+=f(i);

printf("%d\n",j);

}

程序运行后的输出结果是(B)

A)4

B)3

C)2

D)1

73.设有如下定义:

struct sk

{

int a;

float b;

}data;

int *p;

若要使P指向data中的a域,正确的赋值语句是(C)

A)p=&a;

B)p=data.a;

C)p=&data.a;

D)*p=data.a;

74.以下对结构体类型变量的定义中,不正确的是(C)

A)

typedef struct aa

{

int n;

float m;

.

精品文档

}AA;

AA tdl;

B)

#define AA struct aa

AA{

int n;

float m;

}tdl;

C)

struct

{

int n;

float m;

} aa;

struct aa tdl;

D)struct

{

int n;

float m;

}tdl;

75.若说明int *p,n;则通过语句scanf能够正确读入数据的程序段是(D)

A)p=&n;scanf("%d",&p);

B)p=&n;scanf("%d",*p);

C)scanf("%d",n);

D)p=&n;scanf("%d",p);

76.在下述程序中,判断i>j共执行的次数是(D)

main()

{

int i=0, j=10, k=2, s=0;

for (;;)

{

i+=k;

if(i>j)

{

printf("%d",s);

break;

}

s+=i;

}

.

精品文档

}

A)4

B)7

C)5

D)6

77.以下4个选项中,不能看做一条语句的是(D)

A);

B)a=5,b=2.5,c=3.6;

C)if(a<5);

D)if(b!=5)x=2;y=6;

78.在C语言中,变量的隐含存储类别是(A)

A)auto

B)static

C)extern

D)无存储类别

79.若有以下程序

#include

void f(int n);

main()

{

void f(int n);

f(5);

}

void f(int n)

{

printf("%d\n",n);

}

则以下叙述中不正确的是(C)

A)若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f

B)若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正确调用函数f

C)对于以上程序,编译时系统会提示出错信息:提示对f函数重复说明

D)函数f无返回值,所以可用void将其类型定义为无返回值型

80.若有下面的说明和定义

struct test

{

int ml;

char m2;

float m3;

union uu

.

精品文档

{

char ul[5];

int u2[2];

} ua;

} myaa;

则Turbo C 中,sizeof(struct test )的值是(A)

A)12

B)16

C)14

D)9

81.以下程序的输出是(C)

#include

struct st

{

int x;

int *y;

} *p;

int dt[4]={ 10,20,30,40 };

struct st aa[4]={ 50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0]};

main()

{

p=aa;

printf("%dn",++(p->x));

getch();

}

A)10

B)11

C)51

D)60

82.若有运算符<<,sizeof,^,&=,则它们按优先级由高至低的正确排列次序是(B)

A)sizeof,&=,<<,^

B)sizeof,<<,^,&=

C)^,<<,sizeof,&=

D)<<,^,&=,sizeof

83.函数fseek(pf, OL,SEEK_END)中的SEEK_END代表的起始点是(B)

A)文件开始

B)文件末尾

C)文件当前位置

D)以上都不对

84.有以下程序

.

精品文档

#include

main()

{

FILE *fp; int i=20,j=30,k,n;

fp=fopen("","w");

fprintf(fp,"%dn",i);

fprintf(fp,"%dn",j);

fclose(fp);

fp=fopen("","r");

fscanf(fp,"%d%d",&k,&n);

printf("%d %dn",k,n);

fclose(fp);

}

程序运行后的输出结果是(A)

A)20 30

B)20 50

C)30 50

D)30 20

85.结构化程序所规定的三种最基本控制结构是(C)

A)输入、处理、输出

B)树形、网形、环形

C)顺序、选择、循环

D)主程序、子程序、函数

86.一个C语言程序是由(B)

A)一个主程序和若干子程序组成

B)函数组成

C)若干过程组成

D)若干子程序组成

87.请选出可用作C语言用户标识符的是(B)

A)void,define,WORD

B)a3_b3,_123,IF

C)FOR,--abc,Case

D)2a,Do,Sizeof

88.下列各数据类型不属于构造类型的是(A)

A)枚举型

B)共用型

C)结构型

D)数组型

89.在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是.

精品文档

(D)

A)a=20000+20000;

B)a=4000*10;

C)a=30000+10000;

D)a=4000L*10L

90.以下不正确的叙述是(D)

A)在C程序中,逗号运算符的优先级最低

B)在C程序中,APH和aph是两个不同的变量

C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变

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

91.sizeof(float)是(B)

A)一个双精度型表达式

B)一个整型表达式

C)一种函数调用

D)一个不合法的表达式

92.若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为(C)

A)4

B)16

C)32

D)52

93.下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空。

#include

main()

{

int i=0,j,k;

do

{

i++;

k=316-13*i;

}while( B );

j=k/11;

printf("316=13*%d+11*%d",i,j);

}

A)k/11

B)k%11

C)k/11==0

.

精品文档

D)k%11==0

94.设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是(D)

A)p=1;

B)*q=2;

C)q=p;

D)*p=5;

95.下面程序的运行结果是(D)

#include

main()

{

int y=10;

do{

y--;

}while(--y);

printf("%d\n",y--);

}

A)-1

B)1

C)8

D)0

96.下面程序的输出结果是(A)

main()

{

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

printf("%d\n",*(p+2));

}

A)3

B)4

C)1

D)2

97.设有int x=11;则表达式(x++*1/3)的值是(A)

A)3

B)4

C)11

D)12

98.请选出以下语句的输出结果(A)

printf("%dn",strlen("t"065xffn"));

A)5

B)14

.

精品文档

C)8

D)输出项不合法,无正常输出

99.下列程序的输出结果是(C)

main()

{

double d=3.2; int x,y;

x=1.2; y=(x+3.8)/5.0;

printf("%d\n", d*y);

}

A)3

B)3.2

C)0

D)3.07

100.下列程序的输出结果是(B)

int b=2;

int func(int *a)

{

b += *a;

return(b);

}

main()

{

int a=2, res=2;

res += func(&a);

printf("%d\n",res);

}

A)4

B)6

C)8

D)10

To 3(28)

二、 填空题

1.设y是int型,请写出y为奇数的关系表达式 (y%2)==1或(y%2)!=0 。

2.设int a=5,b=6,表达式(++a==b--)?++a:--b的值是 7 。

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

maim()

{

char b[] = "Hello you";

.

精品文档

b[5] = 0;

printf("%sn",b);

4.当调用函数时,实参是一个数组名,则向函数传递的是 数组的首地址 。

5.用高级语言编写的程序称为 源程序 ,它可以通过解释程序翻译一句执行一句的方式执行,也可以通过编译程序一次翻译产生目标程序,然后执行。

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

main()

{

int a=0;

a+=(a=8);

printf("%d\n",a);

}

7.该程序运行的结果是 M=7 。

#include

#define M 100

void fun(int m, int *a, int *n)

{

int i,j=0;

for(i=1;i<=m;i++)

if(i%7==0||i ==0)

a[j++] = i;

*n=j;

}

main()

{

int aa[M],n,k;

fun(10,aa,&n);

for(k=0;k

if((k+1) ==0)

printf("\n");

else printf("M=%d",aa[k]);

printf("n");

}

8.下列函数的功能是:求出字符串ss中包含字符c的个数,并返回此值。请填入合适的表达式,使函数能正常运行

int fun(char *ss, char c)

.

精品文档

{

int i=0;

for(; *ss!= '0' ;ss++)

if(*ss==c)i++;

return i;

}

9.设有如下宏定义

#define MYSWAP(z,x,y) {z=x;x=y;y=z;}

以下程序段通过宏调用实现变量a,b内容交换,请填空。

float a=5,b=16,c;

MYSWAP( c ,a,b);

10.以下程序的运行结果是 9 。

#define MAX (a,b)(a>b?a:b)+1

main ()

{

int i=6,j=8,k;

printf ("%d\n",MAX(i,j));

}

11.以下程序的功能是从健盘输入若干学生的成绩,并输出最高成绩和最低成绩,当输入负数时结束。请填空。

main()

{

float x,amax,amin;

scanf ("%f",&x);

amax=x;

amin=x;

while ( x>0 )

{

if (x>amax)

amax=x;

else if (x

amin=x;

else scanf("%f",&x);

}

printf ("n amax=%fn amin=%fn",amax,amin);

}

12.在对文件操作的过程中,若要求文件的位置指针回到文件的开始处,应当调用的函数是 rewind()或fseek() 。

13.在计算机中,字符的比较是对它们的 ASCII码 进行比较。

.

精品文档

14.在内存中,存储字符'x′要占用1个字节,存储字符串"X"要占用 2 个字节。

15.下列程序的输出结果是16.00,请填空。

main()

{

int a=9, b=2;

float x= 6.6 , y=1.1,z;

z=a/2+b*x/y+1/2;

printf("%5.2f\n", z );

}

16.设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部 void fun(double b[][22]) 。要求形参名为b。

main()

{

double s[10][22];

int n;

fun(s);

}

17.下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0,请填空。

main()

{

int i, x, y=1;

scanf("%d", &x);

for(i=2; i<=x/2; i++)

if (x%i==0)

{

y=0; break;

}

printf("%d\n", y);

}

18.下面程序的功能是将一个字符串str的内容颠倒过来,请填空。

#include

main()

{

int i,j, k ;

char str[]={"1234567"};

.

精品文档

for(i=0,j=strlen(str) -1 ;i

{

k=str[i];

str[i]=str[j];

str[j]=k;

}

printf("%s\n",str);

}

19.以下程序可把输入的十进制数以十六进制数的形式输出,请填空。

main()

{

char b[17]={"ABCDEF"};

int c[64],d,i=0,base=16;

long n;

printf("Enter a number:n");

scanf("%ld",&n);

do

{

c[i]= n%base ;

i++;

n=n/base;

}while(n!=0);

printf("Transmite new base:n");

for(--i;i>=0;--i)

{

d=c[i];

printf("%c",b [d] );

}

printf("n");

}

20.若给fun函数的形参s传送字符串:" 6354abcc",则函数的返回值是 6354 。

#include

long fun(char s[])

{

long n;int sign;

for(;isspace(*s);s++);

sign=(*s=='-')?-1:1;

if(*s=='+'||*s=='-')

s++;

for(n=0;isdigit(*s);s++)

n=10*n+(*s-'0');

.

精品文档

return sign*n;

}

21.设有定义"struct {int a; float b; char c;} abc, *p_abc=&abc;",则对结构体成员a的引用方法可以是abc.a和p_abc -> a。

22.下面程序是指从终端读入的20个字符放入字符数组中,然后利用指针变量输出上述字符串,请填空。

#include

main ()

{

int i; char s[21],*p;

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

s[i]=getchar ();

s[i]= '0' ;

p = s

while (*p)

putchar ( *p++ );

}

23.以下程序将数组a的4个元素和数组b的6个元素写到名为的二进制文件中,请填空。

#include

main ()

{

FILE *fp;

char a[4]="1234",b[6]="abcedf";

if((fp=fopen(" ","wb"))==NULL)

exit(0);

fwrite(a,sizeof(char),4,fp);

fwrite(b, 6*sizeof(char) ,1,fp);

fclose(fp);

}

24.在C语言中,一个float型数据在内存中所占的字节数为4;一个double型数据在内存中所占的字节数为 8 。

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

main()

{

int a=5,b=4,c=3,d;

d=(a>b>c);

printf("%d\n",d);

}

.

精品文档

26.以下函数的功能是求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,然后返回这些除数的个数。

例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15。

请按题意,完成填空。

试题程序:

int fun (int x, int pp[])

{

int i,j=0;

for(i=1;i

if(x%i==0)pp[j++]=i;

return j ;

}

27.mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。

int mystrlen(char *str)

{

int i;

for(i=0; *(str+i)或str[i] != ′\0′;i++);

return(i);

}

28.以下程序的输出结果为 9 。

#define JFT(x) x*x

main()

{

int a, k=3;

a=++JFT(k+1);

printf("%d",a);

}

29.以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针,请将定义补充完整。

struct node

{

int info;

struct node * link;

};

30.设有以下结构体类型:

struct st

{

char name[8];

.

精品文档

int num;

float s[4];

}student[50];

并且结构体数组student中的元素都已有值,若要将这些元素写到硬盘文件fp中,请将以下fwrite语句补充完整:

fwrite(student, sizeof(struct st)*50 ,1,fp);

31.以下程序段的输出结果是 28 。

main()

{

int a=2,b=3,c=4;

a*=16+(b++)-(++c);

printf("%d",a);

}

32.若变量n中的值为24,则print()函数共输出 5 行,最后一行有 3

个数。

void print (int n,int aa[])

{

int i;

for (i=1; i

{

printf ("%6d", aa[i]);

if(!(i%5)) printf ("n");

}

printf ("n");

33.调用C语标准库函数时要求用 #include 命令。

34.stract函数的作用是 连接两个字符数组中的字符 。

35.C语言程序的注释可以出现在程序中的任何地方,一个注释以 /* 作为开始和 */ 结束。

36.设二进制数A是00101101,若想通过异或运算A^B使A的高4位取反,低4位不变,则二进制数B应是 11110000 。

37.若已知a=10,b=20,则表达式!a

38.设i,j,k均为int型变量,则执行完下面的for语句后,k的值为

10 。

for(i=0, j=10; i<=j; i++, j--)k=i+j;

.

精品文档

39.下面函数的功能是:找出一维数组元素中最大的值和它所在的下标,最大值的和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。请填空。

#include

#include

void fun(int a[],int n, int *max, int *d)

{

int i;

*max=a[0];

*d=0;

for(i=0; i

if(*max< a[i] )

{

*max=a[i];

*d=i;

}

}

main()

{

int i, x[20], max, index, n=10;

randomize();

for(i=0;i

{

x[i]=rand()%50;

printf("%4d",x[i]);

}

printf("\n");

fun(x,n,&max,&index);

printf("Max=%5d,Index=%4d\n",max,index);

}

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

void fun()

{

static int a=0;

a+=2;

printf("%d",a);

}

main()

{

int cc;

for(cc=1;cc<4;cc++)fun();

printf("\n");

.

精品文档

}

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

#define MAX(x,y)(x)>(y)?(x):(y)

main()

{

int a=5,b=2,c=3,d=3,t;

t=MAX(a+b,c+d)*10;

printf("%dn",t);

}

43.用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。

st=(char*) malloc(11)或malloc(sizeof(char)*11) ;

44.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。

FILE *myf; long f1;

myf= fopen ("test.t","rb");

fseek(myf,0,SEEK_END); f1=ftell(myf);

fclose(myf);

printf("%d\n",f1);

45.冒泡排序算法在最好的情况下的元素交换次数为 0 。

46.下列y的值是 8 。

int y; y=sizeof(2.25*4);

47.下列x的值是 32 。

int x;x=sizeof 2.25*4;

48.以下程序的输出结果是 8,10 。

main()

{

int i=010,j=10;

printf("%d,%dn",i,j);

}

49.下列程序的输出结果为 12 。

main()

{

int x=3,y=5;

printf("%d",x=(x--)*(--y));

.

精品文档

}

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

fun(int x,int y,int z)

{

z =x*x+y*y;

}

main()

{

int a=31;

fun(6,3,a);

printf("%d",a);

}

51.若有int a=1;int b=2;则a|b的值为 3 。

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

53.若从键盘输入58,则以下程序输出的结果是 585858 。

main()

{

int a;

scanf("%d",&a);

if(a>50)printf("%d",a);

if(a>40)printf("%d",a);

if(a>30)printf("%d",a);

}

54.下列程序的输出的结果是 -850,2,0 。

main()

{

int i,j row,colum,m;

static int array[3][3]={{100,200,300},{28,72,-30}{-850,2,6}};

m=array[0][0];

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

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

if(array[i][j]<m)

{

m=array[i][j];

colum=j;row=i;

}

printf("%d,%d,%d\n",m,row,colum);

}

.

精品文档

55.以下程序中,select 函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。请填空。

#define N 3

#define M 3

int select(int a[N][M],int *n)

{

int i,j,row=1,colum=1;

for(i=0;i

for(j=0;j

if(a[i][j]>a[row][colum])

{

row=i;colum=j;

}

*n= row ;

return a[row][colum] ;

}

56.函数my_cmp()的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCII码差值,即s > t时返回正值,当s < t时返回负值。请填空。

int my_cmp(char *s, char *t)

{

while (*s == *t)

{

if (*s == '0')

return 0;

++s; ++t;

}

return *s-*t ;

}

57.若有以下说明和定义语句,则变量w在内存中所占的字节数是

34 。

union aa

{

float x;

float y;

char c[6];

};

struct st

{

union aa v;

.

精品文档

float w[5];

double ave;

} w;

58."FILE *p"的作用是定义一个文件指针变量,其中的"FILE"是在

stdio.h 头文件中定义的。

.


本文标签: 函数 程序 文件 输出 结构