大一C语言总题库_第1页
大一C语言总题库_第2页
大一C语言总题库_第3页
大一C语言总题库_第4页
大一C语言总题库_第5页
已阅读5页,还剩112页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1-11-1c语言中在else之后可以直接跟条件。(1分)

F

1-2C语言中的变量名属于标识符。(1分)

T

1-3可以使用print输出一个字符。(1分)

T

1-3c语言中书写程序时一行可以写多个语句。(1分)

T

1-5执行c程序时,不是从main函数开始。(1分)

F

1-6c程序书写格式限制严格,--行内只能写一条语句。(1分)

F

1-7-个程序可由一个或多个函数组成。(1分

T

1-8c程序的基本组成单位是函数。(1分)

T

1-9在c程序中,注释语句只能位于一条语句的后面。(1分)

F

1-10c程序中注释语句可以这样写:/注释/和〃注释。(1分)

F

1-11c语言具有位运算功能。(1分

T

1-12每一条c语言语句的最后都必须加分号。(1分)

T

1-13c语言的每个函数都可以用return语句返回一个返回值。Q分)

T

1/4c语言每个函数的返回值都是int型的。(1分)

F

1-15若有定义:charch='\105';测变量ch中包含4个字符。(1分)

F

1-16C语言中变量名和R表示同-一个变量。(1分)

F

1-17c语言中运算符%的优先级高于&&。(1分)

T

1-18C语言中3/2的值是1«(1分)

T

1-19C语言中字符串常量是用双引号括起来的。(1分)

T

1-20在C语言中这个表达式是正确的:'a1+2(1分)

T

1-21在C语言中一个字符型变量中可以存放多个字符。(1分)

F

1-22在C语言中转义字符可以算是多个字符,\ioro(1分)

F

1-23这个赋值语句是正确的:5=a;(1分)

F

1-24在C语言中一个float型变量-般是占2个字节的内存空间。(1分)

F

1-25求余数运算符%的两边只能是整型的数据“(1分)

T

1-26可以使用圆括号改变运算符的运算次序。(1分)

T

1-27C语言中的运算符有单目的、双目的,还有三目的。(1分)

T

1-28函数pow(x,y)的作用是计算y的x次方。(1分)

F

判断整型变量是否是偶数的表达式为分)

1-29aa%2=0o(1

F

判断整型变量能否同时被和整除的表达式为分)

1-30a37a%3==0&&a%7==0o(1

T

1-31表达式的值只能是1或者0。(1分)

T

1-32赋值号左边必须为变量。Q分)

T

假设有则%的值为分)

1-33floatf=7;210(1

F

1-34复合语句是由一对大括号括起来的若F条语句组成的。(1分)

T

1-35空语句不是一条始法的语句,因为它没有作用。(1分)

F

1-36可以使用getchar函数输入-个字符串。(1分)

F

1-37不可以把一个实型数据赋给一个整型变量。Q分)

F

1-38可以把一个整型数据赋给一个实型变量。(1分)

T

1-39可以使用scanf输入-个字符。(1分)

T

1-40复合语句语法上是一条语句。(1分)

T

1-41在逻辑运算符中,逻辑非⑴的优先级别最高。

T

示变量的值在到之间的逻辑表达式为分)

1-42x19K=x<=9o(1

F

1-43若a=l;b=2;c=3;d=4;m=l;n=1;则执行语句(m=a>b)&&(n=c>d)后,m的值为0,n的

值也为0。(1分)

F

1-44if(a>b){t=a;a=b;b=t;}S3条c语句。(1分)

F

1-45switch语句中break语句是必须的。(1分)

F

1-46switch语句中default语句是必须的。(1分)

F

1-47switch语句中多个case标号可以共用一组语句。(1分)

T

1-48(float)(l/2)的值为0.5o(1分)

F

1-49在条件表达式(exp)?a:b中,表达式(exp)与表达式(exp!=O)完全等价。(1分)

T

1-50已知:intx=6,y=2,z;则执行表达式z=x=x>y后,变量z的值为6。(1分)

F

1-51while循环的循环体最少要执行一次。(1分)

F

1-52对for(表达式1.;表达式3)可理解为for(表达式1;1;表达式3)0(1分)

T

1-53c语言中三种循环语句可以相互嵌套。(1分)

T

1-54do-while循环的循环体最少要执行-次。(1分)

T

1-55循环体中若有多条语句,应构成一复合语句。(1分)

T

1-56c语言的数组下标从0开始。(1分)

T

1-57若有定义floata[6]={l,2,3},则数组中含有3个元素。(1分)

F

1-58若有定义:inta网[4];则⑵是对a数组元素的正确引用。(1分)

F

1-59数组初始化时,初始值个数小于数组元素的个数,C语言自动将剩余的元素初始化为初

始化列表中的最后一个初始值。(1分)

F

1-60对于定义inta[5];可以通过语句scanfC'%d“a)输入全部元素的值。(1分)

F

1-61要对文件进行操作必须先使用fopen函数打开该文件。(1分)

T

1-62close⑴;表示关闭指针fp所指向的那个文件。(1分)

F

1-63fprintf(fp,”%d”,a);表示将变量a以十进制整数形式保存到指针fp所指向的文件中。(1

分)

T

1-64scanf(fp,”虹“,&xch);表示从指针fp所指向的文件中读出一个字符并保存到变量ch中。

(1分)

F

1-65语句int*p和printf(1%d",*p);中的*p含义相同。(1分)

F

1-66可以将一个整型数据赋给一个指针变量,如P=3000o(1分)

F

1-67指针变量中保存的肯定是一个地址。(1分)

T

1-68指针变中保存的不一定是一个地址.(1分)

F

1-69如此定义指针变量int*p;后,可以把一个实型变量的地址赋给变量p。(1分)

F

1-70对于定义inta[5],*p=a后,*(p+l)和*(a+l)的值是相同的。(1分)

T

1-71chars[80];s="hello”这样赋值是可以的。(1分)

F

1-72chars[80],*p=s;p=”hell。”,这样赋值是可以的。(1分)

T

1-73chars"80],s2[80];sl=s2;这样赋值是正确的。(1分j

F

1-74语句char*pstr="lalala!”的含义是将字符串存入到变量pstr中。(1分)

F

1-75对于两个字符串变量si和s2,使用if(sl〉s2)来比较大小是可以的。Q分)

F

1-76C语言的一个源程序文件中只能包含一个函数。(二分)

F

1-77C语言程序执行时是从main函数开始,最后也是结束于main函数。(1分)

T

1-78main函数必须位于其他函数之前。(1分)

F

1-79除了main函数,其他函数都必须先声明才能调用。Q分)

F

1-80在不同函数中不能使用相同名称的变量。(1分)

F

1-81以数组名作函数参数时,数据传递的方向是“双向的”,因此我们可以说,在此情况

下,函数带回的返回值可能不止一个。(1分)

T

1-82以数组名作函数参数时,实参数组与形参数组都不必定义长度,因为实参与形参的结

合方式是地址结合,与数组长度无关。(1分)

T

1-83在调用一个函数的过程中又出现直接或间接地调用该函数本身,这称为函数的递归调

用。Q分)

T

1-84函数的递归调用是嵌套调用的特例。Q分)

T

1-85用指针变量做函数参数时,参数间进行的是地址传递。(1分)

T

1-86C语言中的预处理命令都以<1#"开头。(1分)

T

1-87includevstdio.h>是一条编译预处理命令。(1分)

T

1-88#definePI3.1415926是一条C语句。(1分)

F

1-89宏定义不存在类型问题,宏名无类型,它的参数也无类型。(1分)

T

1-90宏名必须用大写字母表示。(1分)

F

1-91C语言中的结构体类型属于-种构造类型。(1分)

T

1-92结构体变量的存储空间是该结构体中所有成员所需存储空间的总和。(1分)

T

1-93-个结构体类型中的各个成员的类型必须是相同的。(1分)

F

1-94结构体类型不可以嵌套定义。(1分)

F

1-95结构体变量不能进行整体输入输出。

T

1-96当对一个数进行左移运算时,每左移-位,-定相当于移位对象乘以2。(1分)

F

1-97若要使一个数中某些指定位翻转而另-一些位保持不变,可以将此数与另-个数做”异

或“运算。(1分)

T

1-98a为任意整数,表达式a二a八a能将变量a清零。(1分)

T

1-995-2<<3的值为24o(1分)

T

1-100若已知a=l,b二2,则表达式!a>b的值为0。(1分)

F

2-1

以下叙述不正确的是

(C)o

1.c程序中,语句之间必须用分号分隔。

2.c程序中,多行语句可以写在一行上。

3.c程序中,可以不必包含主函数。

4.一个c程序,可以由多个函数组成。

2-2

c语言规定,在一个源程序中,main函数的位置(C)。

1.必须在最开始

2.必须在系统调用库函数的后面

3.可以任意

4.必须在最后

2-3

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

1.main函数必须位于程序的最前面。

2.c程序中,每行可以写多条语句。

3.c语言本身不提供输入输出语句。

4.在对c语言程序进行编译的过程中,不能发现注释中的错误。

2-4

一个C程序的执行是从(A)。

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

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

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

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

2-5

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

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

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

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

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

2-6

以下叙述不正确的是(B)o

1.若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,且b中的值

不变。

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

数值。

3.在C程序中,逗号运算符的优先级最低。

4.在C程序中,MAX和max是两个不同的变量。

2-7

已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+6-3

后,C2中的值为(C)。

1.D

2.68

3.不确定的值

4.C

2-8

sizeof(float)是(B)0

1.一个双精度型表达式

2.一个整型表达式

3.一种函数表达式

4.一个不合法的表达式

2-9

若变量已正确定义,要将a和b中的值进行交换,下面不正确的语句组是(D)。

1.a=a+b,b=a-b,a=a-b;

2.t=a,a=b,b=t;

3.t=b;b=a;a=t;

4.a=t;t=b;b=a;

2-10

若有定义:charch=,\x42';则变量ch中包含(A)个字符。

1.1

2.2

3.4

4,定义不合法

2-11

下列选项中可以作为C语言的合法整数的是(B)。

1.bf

2.0x7e3

3.03678

4.1011B

2-12

putchar函数可以向终端输出一个(D)。

1.整型变量表达式

2,实型变量值

3.字符串

4.字符

2-13

printf函数中用到格式符%-6s,其中数字6表示输出的字符串占用6歹h如果字符串长度小

于6,则输出按方式(A)o

1.从左起输出该字符串,右补空格

2.从右起输出该字符串,左补空格

3.0

4.输出错误信息

2-14

printf函数中用到格式符贴s,其中数字5表示输出的字符串占用5歹人如果字符串长度大于

5,则输出按方式(B)。

1.从左起输出该字符串,右补空格

2,按原字符长从左向右全部输出

3.0

4.输出错误信息

2-15

若变量已定义为float类型,要通过以下赋值语句scanf(“时给a赋值为11,给b

赋值为22,以下正确的输入形式是(D)。

1.1122

2.11&22

3.11:22

4.11,22

2-16

若变量已正确说明为int类型,要给abc输入数据,以下正确的输入语句是(C)o

1.reada,b,c;

2.getchar(a,b,c);

3.scanf("%d%d%d",&a,&b,&c);

4.scanf("%d%d%d",a,b,c);

2-17

以下叙述正确的是(C)o

1.在C程序中,不允许把一个整数赋值给一个实型变量。

2.1/2的值为0.5o

3.在C程序中,弱是只能用于整数运算的运算符。

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

2-18

设有说明:charw;intx;floaty;doublez;则表达式wx+z-y值的数据类型为(D)<>

1.float

2.char

3.int

4.double

2-19

已知intx=10,y=20,z=31;以下语句:if(x〈y)z=x;x=y;y=z;执行后x,y,z的值是(C)o

1.x=10,y=20,z=30

2,x=20,y=30,z=30

3.x=20,y=10,z=10

4.x=20,y=30,z=10

2-20

已知intx=10,y=20,z=32似下语句:if(x<y)z=x;elsex=y;y=z;执行后x,y,z的值是(A)0

1.x=10,y=10,z=10

2.x=20,y=30,z=30

3.x=20,y=30,z=10

4,x=20,y=20,z=20

2-21

已知intx二10,y=20,z=33;以下语句:if(x<y)z=x;else(x=y;y=z;}执行后x.y.z的值是(B)°

1.x=10,y=20,z=30

2.x=10,y=20,z=10

3,x=20,y=30,z=10

4.x=20,y=30,z=20

2-22

表示关系1〈=x<=100的c语言表达式为(D)o

1.x>=l&x<=100

2.x>=landx<=100

3.l<=x<=100

4.x>=l&&x<=100

2-23

在下面的条件语句中(其中SI和S2表示c语言语句),哪一个在功能上与其他3个语句不

等价(B)0

1.if(a!=O)Sl;elseS2;

2.if(a==O)SlielseS2;

3.if(a)SlielseS2;

4.if(a==O)S2;elseSI;

2-24

以下不属于算法的特征的是(A)o

1.无穷性

2.确切性

3.可行性

4,输出项

2-25

判断char型变量ch是否为大写字母的正确表达式是(C)o

1.'A,<=ch<='Z'

2.(ch>='A')&(chv二'T)

3.(ch>='A')&&(ch<=Z)

4.(*A,<=ch)AND(Z>=ch)

2-26

设有:inta二l,b二2,c=3,d=4,m=2,n二2才丸行(m二a>b)&&(n二c>d)后n的值为(B)。

1.1

2.2

3.3

4.4

2-27

若有intabd=241;语句a=d/100%9;b=(-l)&&(-l);执行后a,b的值为(B)o

1.6.1

2.2.1

3.6.0

4.2.0

2-28

设有程序段intk=10;while(k=0)k=k-l;这下面描述中正确的是(C)。

1.while循环执行10次C

2.循环是无限循环

3.循环体语句一次也不执行

4.循环体语句执行一次

2-29

若i为整型变量,贝IJ以下循环for(i=2;i==0;i・・)p「intf("%d*i);执行次数是(B)。

1.无限次

2.0次

3.1次

4.2次

2-30

执行语句for。=l;i〈4;i++);后变量i的值是(C)o

1.3

2.5

3.4

4.不定

2-31

下列程序的循环次数是(A)。

inti=0;

while(i<100)

{if(i<l)

continue;

if(i==3)

break;

i++;

)

1.死循环

2.1

3.2

4.3

2-32

合法的数组定义语句是(D)。

1.inta□二"string";

2.inta[5]={0,lt2,3.4.5);

3.chara="string";

4.chara[]="string";

2-33

有定义语句int输入数组a的所有元素的语句应为(C)。

1.scanf("%d%d%d%d%d",a[5]);

2.scanf("%d",a);

3.for(i=0;i<5;i++)scanf("%d",&a[i]);

4.for(i=0;i<5;i++)scanf("%d",a[i]);

2-34

以下能正确定义二维数组的语句是(D)o

1.inta[]Q;

2.inta[][3];

3.inta[2][];

4.inta[2][3];

2-35

以下对二维数组a的正确说明是(C)o

1.inta[3]Q;

2.floata(3,4);

3.doublea[l][4];

4.floata(3)(4);

2-36

变量的指针,其含义是指该变量的(B)。

1,值

2.地址

3.名

4.一个标志

2-37

若想对文本文件进行只读操作,打开此文件的方式是(D)。

1."rb"

2."w"

3,"ab"

4."r"

2-38

若执行fopen函数时发生错误,则函数的返回值是(CL

1.一个随机地址值

2.1

3,NULL

4.EOF

2-39

文件操作的一般步骤是(B)0

1.读/写文件一修改文件一关闭文件

2.打开文件一读/写文件一关闭文件

3.读/写文件一打开文件一关闭文件

4,读文件一写文件一关闭文件

2-40

若fp是指向某文件的指针,且已读到文件末尾,则表达式feof(fp)的返回值是(C)o

1.EOF

2.-1

3,非零值

4.NULL

2-41

关于文件指针,以下说法错误的是(D)o

1.只有通过文件指针变量才能调用相应文件。

2,定义文件指针变量时,FILE必须大写。

3.一个文件指针变量只能对应一个文件。

4.一个文件指针变量可以同时对应多个文件。

2-42

以下为一维整型数组a的正确说明是(D)o

1.inta(10);

2.intn=10,a[n];

3.intn;scanf("%d",&n):inta[n];

4.#defineSIZE10inta[SIZE];

2-43

若二维数组a有m歹ij,则在前的元素个数为(B)。

1.j*m+i

2.i*m+j

3.i*m+j-l

4.i*m+j+l

2-44

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

1.a.point,*&a

2.&*a,&a,*point

3.*&point,*point,&a

4.&a,&*point.point

2-45

若有说明:int*p,m=5,n;以下正确的程序段的是(D)o

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

2.p=&n;scanf("%d"*p);

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

4.p=&n;*p=m;

2-46

若有以下定义,inta[5],*p=a;则对a数组元素的正确引用是(B)o

1.*&a[5]

2.*(a+2)

3.*(P+5)

4,a+2

2-47

若有以下定义,inta[10],*p=a;则p+5表示(A)0

1.元素a[5]的地址

2.元素a[5]的值

3.元素a[6]的地址

4.元素a⑹的值

2-48

以下叙述错误的是(D)。

1.指针可以进行加、减等算术运算;

2.指针中存放的是地址值

3.指针是一个变量

4.指针变量不占用存储空间

2-49

对于基类型相同的两个指针变量之间,不能进行的运算是(C)0

1.<

2.=

3.+

4.-

2-50

假设整型变量a的值为1Q0,a的地址为2000,若欲使p为指向a的指针变量,则以下复制

正确的是(D)o

1.*p=2000;

2.*p=12;

3.p=2000;

4.p=&a;

2-51

若有说明:intn=2,p=&n,q=p;则以下非法的赋值为(D)。

1.p=q;

2.P=q;

3.n=*q;

4.p=n;

2-52

有两个字符数组a、b,则以下正确的输入语句是(C)o

1.gets(a,b);

2.scanf("%s%s"产a,*b);

3.scanf("%s%s",&a,&b);

4.gets(a);gets(b);

2-53

判断字符串si是否大于字符串s2,应当使用(D)。

1.if(sl>s2)

2.if(strcmp(sl,s2))

3.if(strcmp(s2,sl)>0)

4.if(strcmp(sl,s2)>0)

2-54

设pl和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值

语句是(B)。

1.c=*pl;

2.p2=c

3.pl=p2

4.pl+=2

2-55

以下正确的程序段是(C)o

1.charstr[20];scanf("%s",&str);

2.char*p;scanf("%s",p);

3.charstr[20];scanf("%s",&str[2]);

4.charstr[20]*p=str;scanf("%s",p[2]);

2-56

若有说明语句chara[]="ltismine";char*p="ltismine";则以下不正确的叙述是(D)0

1.a+l表示的是字符t的地址

2.p指向另外的字符串时,字符串的长度不受限制

3.p变量中存放的地址值可以改变

4.a中只能存放10个字符

2-57

下列选项正确的语句组是(A)。

1.char*s;s="hellol";

2.char*s;s={"hello!");

3.chars[8];s="hello!";

4.chars[8];s={"hello"};

2-58

为了判断两个字符串si和s2是否相等,应当使用下列哪个语句(B)o

1.if(sl==s2);

2.if(strcmp(sl,s2)==0);

3.if(sl=s2);

4.if(strcpy(sl,s2));

2-59

有如下定义,Chars[80],*p=s;不能给数组s输入字符串的是(B)。

1.gets(p)

2.gets(s[0]);

3.gets(&s[0]));

4.gets(s);

2-60

有以下定义,CharsQ="012M356",*p=s;不能表示字符M的表达式是(D)。

1.*(P+3)

2.s[3]

3.*(s+3)

4.*p+3

2-61

有定义语句chararray□="China”;则数组array所占用的空间为(C)。

1.4个字节

2.5个字节

3.6个字节

4.7个字节

2-62

以下正确的函数声明形式是(A)。

1.intfun(intx,inty)

2.intfun(intx;inty)

3.intfun(intx,y);

4.intfun(inty);

2-63

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

1.地址传递

2.由用户指定传递方式

3.双向值传递

4,单向值传递:实参的值传给形参

2-64

以下程序有语法性错误,intmain(void){intN=3,k;voidfunl();〃函数声明…k=funl(N);//

函数调用…}。有关错误京因的正确说法是(B)。

1.语句voidfunl();有错,它是函数调用语句,不能用void说明。

2.函数说明和函数调用语句之间有矛盾

3.函数声明语句不应该放在这里。

4.变量名不能使用大写字母

2-65

C语言在C89标准中允许函数定义时缺省函数类型,此时隐含的函数的类型是(C)。

1.long

2.float

3.int

4.double

2-66

在C语言中以下正确的叙述是(D)。

1.函数的定义和函数的调用均可以嵌套。

2,函数的定义和函数的调用均不可以嵌套。

3.函数的定义可以嵌套,但函数的调用不可以嵌套。

4,函数的定义不可以嵌套,但函数的调用可以嵌套。

2-67

若有数组名作为函数调用的实参,传递给形参的是(A)。

1.数组的首地址

2.数组第一个元素的值

3,数组中全部元素的值

4.数组元素的个数

2-68

如果在一个函数中的复合语句中定义了一个变量,则该变量(B)0

1.在该函数中有效

2.只在该复合语句中有效

3.在该程序范围内均有效

4.为非法变量

2-69

凡是函数中未指定存储类别的局部变量,其隐含的存储类别为(B)。

1.静态(static)

2.自动(auto)

3.外部(extern)

4,寄存器(register)

2-70

以下说法正确的是(B)。

1.实参类型不必同形参类型一致。

2.实参可以是常量、变量和表达式。

3.形参可以是常量、变量和表达式。D.实参顺序与形参顺序无关。

2-71

有关C语言的主函数描述正确的是(C)。

1.C程序可以有多个main函数

2.C程序可以没有main函数

3.C程序有且只有一个main函数

4.C程序不一定从main函数开始执行

2-72

以下正确的描述是(D)o

1.如果形参和实参的类型不一致,应以实参类型为准。

2.定义函数时,可以省略不写形参的类型,只写形参名。

3.return语句后不能是表达式。

4.如果函数值类型与返回值类型不一致,应以函数值类型为准。

2-73

下列关于函数的描述错误的是(D)。

1.C程序是由函数组成的。

2.C程序中的函数是各自独立的。

3.main函数可以调用其他的函数。

4.在main函数中可以嵌套定义别的函数。

2-74

对于一维数组名作为函数实参,以下描述正确的是(B

1.实参数组类型与形参数组类型可以不一致。

2,必须在主调函数中说明此数组的大小。

3.函数调用时是将实参数组中的所有元素值复制到形参数组中。

4.实参数组名与形参数组名必须保持一致。

2-75

数组名作为参数时,以下叙述正确的是(C)0

1.函数调用时是将实参数组的所有元素值传给形参。

2.函数调用时是将实参数组的第一个元素值传给形参。

3,函数调用时是将实参数组的首地址传给形参。

4.函数调用时是将实参数组的所有元素的地址传给形参。

2-76

已有如下数组定义和函数调用语句,inta[3][4]:fun(a);则fun函数的形参数组定义正确的

是(C)。

1.fun(inta[][6])

2.fun(inta[3][])C.fun(ir)ta[][])

3.fun(inta[][4])

2-77

以下描述错误的是(A)。

1.实参数可以与形参个数不一致c

2.C程序中,函数可以直接或间接地调用自己。C.函数调用时,函数名必须与所请用的

函数名字完全一致。D.函数声明语句中的类型必须与函数返回值得类型一致。

2-78

关于递归函数以下叙述错误的是(B)。

1.递归函数是自己调用自己。

2,递归函数的运行速度很快。

3.递归函数占用较多的存储空间。

4.递归函数的运行速度一般比较慢。

2-79

以下对局部变量描述错误的是(B)。

1,在函数内部定义的变量。

2.在程序的全部执行过程中一直占用存储单元。

3.在main函数中定义的变量是局部变量。

4.形式参数也是局部变量。

2-80

在一个源文件中定义的全局变量的作用域是(B)。

1.本文件的全部范围。

2,从定义该变量的位置开始到本文件结束。

3.本程序的全部范围。

4.本函数的全部范围。

2-81

以下关于局部变量和全局变量的叙述错误的是(C

1.main函数中定义的变量是局部变量。

2.局部变量可以与全局变量重名。

3.形式参数不是局部变量。

4.在所有函数外定义的变量是全局变量。

2-82

若函数定义如下,intfun(floata){floatb=a+3;returnb;}假设将常数3.6传给a,则函数的

返回值是(D)o

1.3

2.6.6

3.5

4.6

2-83

若有以下说明语句,structbirthday{intyear;intmonth;intday;}dayl;则下面叙述正确的是

(D)。

1.dayl为结构体类型名

2.structbirthday为结构体变量名

3.month为结构体变量名

4.dayl为结构体变量名

2-84

若有以下结构体类型定义,structworker{intx;floaty;}c;则赋值语句正确的是(C)。

1.worker.x=10;

2.worker.a.x=10

3.a.x=10;

4.x.a=10;

2-85

若有以下结构体类型定义,structworker{charname[16];structdate{intyear;intmonth;int

day;}birthday;}x;则赋值语句正确的是(B)o

1.x.year=1999;

2.x.birthday.month=3;

3.="黎明";

4.x.birthday=1999.9.9;

2-86

若有如下定义,structworker{charname[17];intage;intscore;}x;且sizeof(int)=4,贝!变量

x在内存中需要的字节数是(C)。

1.17

2.21

3.25

4.4

2-87

根据下面的定义,structworker{charname[18];intage;};structworker

H

w[100]={"John",161"Paul",171"Mary,16};能输出字母‘P'的语句是(D)o

1.printf("%c",w[l].name);

2.printf("%c",w[2].name[0]);

3.printf("%c",w[2].name[l]);

4.printf("%c"Iw[l].name[O]);

2-88

根据下面的定义,structworker{charname[18];intage;};structworker

w[100]={"John",16,"Paul",17,"Mary"l17);能输出字符串‘Mary1的语句是(A)o

1.printf("%s",w[2].name);

2.printf("%s",w[l].name);

3.printf("%s",w[2]);

4.printf("%s",w[l]);

2-89

若有以下定义,structdata{intx;inty;}datal;int*p;则使p指向datal中的成员x,正确的

赋值语句是(B)。

1.p=&a;

2.p=&datal.x

3.p=datal.x;

4.*p=datal.x;

2-90

表达式a>>3|b的计算顺序是(D)。

1.先执行左移,后执行或运算

2.先执行或运算,再执行左移

3,先执行或运算,再执行右移

4,先执行右移,再执行或运算

2-91

以下不能将变量m清零的表达式是(C)。

1.m=m&〜m

2.m=m&0

3.m=m|m

4.m=mAm

2-92

表达式0xll&0xl3的值是(B)o

1.0x12

2.0x11

3.0x12

4..0x22

2-93

若有以下定义,structdata{intx;inty;Jdatal;int*p;则使p指向datal中的成员x,正确的

赋值语句是(B)。

1.p=&a;

2.p=&datal.x

3.p=datal.x;

4.*p=datal.x;

5-1

输入一个整数,根据输入,愉出该整数的绝对值。限定不能调用库函数。。

#include<stdio.h>

intmain(void)

{intx;

(4分);

if(x>=0)

printf(

(3分);

else

printf(

(3分);

return0;

}

5-2

键盘输入10个数存入一维数组中,编程实现输出下标为奇数的元素。数据输入时用空格

分隔,要求输出完最后一个数据后要换行。

#include<stdio.h>

intmain(void)

{inta[10],i;

||什

for(i=0;i<10;l(2分))〃输入数据

a[il

scanf("%d*'J(2分));

for(i=l;i<10;l(2分))〃输出数据

if(i!=9)

printf("%d\a[i]);

else

printf("l(2分):

return0;

}

5-3

回文数是指正读和反读都一样的数。例如:12321、55455、35553等都是回文。请编写

一个程序,从键盘上读取一个包含5位数字的长整数,并判断它是否是回文数。先将输

入数据输出,再输出是否是回文,若是回文输出“yes”,否则输出“no“,中间用一个空格分

隔。

#include<stdio.h>

n4十位数字,n5个位数字

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

return0;

}

5-4

请编程从键盘上输入3个整数(用空格分隔),判断这3个数是否可以构成一个三角形

(条件:三条边均大于0且任意两边之和均大于第三边),如果可以则进一步判断是等

边、等腰还是一般三角形,若为等边三角形输出“1",若为等腰三角形输出"2",若为一般三

角形输出“3",若无法组成三角形输出F"o

ttinclude<stdio.h>

intmain(void)

{intx,y,z;

scanf(

(2分);

X4y>z&&x+z>y&&y+z>X

讦((2分))〃能构成三角形

{if((2分))"等边三角形

prinlf("l\ri");

x=y&xl=z||x=z&&xl^y||y=z&&y!=x八八皿一,,巾

if(H171177(2分))//等腰三角形

printf("2\n");

else

printf("3\n");//•般三角形

}

else〃不能构成三角形

(2分);

return0;

)

5-5

输入三个整数,按照由小到大的顺序输出。数据输入时数据之间用空格分隔,输出时用逗

号,分隔。

ttinclude<stdio.h>

intmain(void)

{intx,y,z,t;

(2分);

if(x>y)

{t=x;x=yy=t;}

(2分)

if(x>z)

{t-X-}

(2分)

if(y>z)

{t=y;y^Z;z^;}

(2分)

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

return0;

}

5-6

输入三个整数,求出其中的最大值并输出。

#include<stdio.h>

intmain(void)

{intx,y,z,max;

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

max=x

(2分);

(2分))

max=y;

maxa

ifd(2分))

(2分);

return0;

}

5-7

编写程序,求自然数1至n(n>1)的累加和。其中n的值从键盘输入。

#include<stdio.h>

intmain(void)

{intn,s,i;

scanf("%d",&0);

(2分);

i=1idii++

for(l(2分);」(2分);।(2分))

(2/?);

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

return0;

)

5-8

键盘输入10个数存入一维数组中,编程实现输出下标为奇数的元素。数据输入时用空格

分隔,输出时用逗号,分限。

ttinclude<stdio.h>

intmain(void)

{inta[10],i;

i=0^<10;i++.

for。(2分))〃输入数据

scanf(,(2分));

for(ll-0:i<10;i++(2分))//输出数据

i%2!=0

讦((2分))

printf((2分));

return0;

5-9

输入一个3行3列的二维数组,输出二维数组中行列号之和为3的数组元素以及它们的平

均值。

#include<stdio.h>

intmain(void)

{inta[3]j,k,sum=0,count=0;

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

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

scanf(

1(2分)

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

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

{k=i+j;

(printf("%d\n",a[i][j]);

sum=^um+a[i]D]

(2分);

oount++

(2分);

(double)sun7(double)counl

printf("average=%.21f\n",(2分);

return0;

一个整数n称为完全平方数,是指它的值是另一个整数(1至n)的平方。例如81是个完

全平方数,因为它是9的平方。下列程序的功能是对输入的一个数判定是否为完全平方

数。请将下列程序补充完整完成相应功能。输入输出样例如下:

输入样例1:

81

输出样例1:

81isaperfectsquarenumber.

输入样例2:

999

输出样例2:

999isnotaperfectsquarenumber.

#include<stdio.h>

intnumber

intiswqs(1(2分))

1

{inti=(2分);

while(i<=number)

j*j=number

{if((2分))

return1;

else

i++;

)

0

return(2分);

}

intmain(void)

{intn;

scanf("%d",&n);

.iswqs(n)

f((2分)==0)〃调用函数

printf("%disnotaperfectsquarenumber.\n",n);

else

printf("%disaperfectsquarenumber.

return0;

}

5-11

下列程序的功能是调用函数fun计算表达式1+1/2+1/3+…+1/n的值并输出,结果保留3位

小数,不添加任何提示信息,请填空完成程序功能。

#include<stdio.h>

doubletun(lntn)

{doublet=1.0;

inti;

ion

for(i=2;(2分);i++)

(2分);

t

return(2分);

)

intmain(void)

{intm;

doubles;

scanf("%d",&m);

S=l.佃)(2分);〃调用函数

printf(I(2<?));

return0;

}

5-12

编写一个函数intmymod(inta,intb),用来求a除以b的余数,并写出相应的主函数

调用它。请填空完成程序功能。

intmymod(inta,intb)

{ints,ys;

s=a/b;

ys

return'(2分);

}

#include<stdio.h>

intmain(void)

{intx,y,myys;

scanf(l(2分));

mymod{x,y)>

myys=>(2分);

printf(l(2分));

return0;

5-13

完美数是指一个正整数的所有的真因子(即除了自身以外的约数)的和,恰好等于它本

身,例如:由于6=1+2+3,因此6是完美数。下面的程序通过调用函数wms来判断一个

数是否是完美数,然后输出,请填空完成程序相应功能。

intwms(inta)

{inti,s=0;

Ii<a

■For(i=l;l(2;i++)

(2分))

sT

(2分);

if(s==a)return1;

elsereturn0;

}

#include<stdio.h>

intmain(void)

{intx;

(2分);

小口

if(l(2分))

printf("%dyes\n",x);

else

printf("%dno\n",x);

return0;

}

5-14

输入一个由小写英文字母构成的字符串,统计出现次数最多的字母及其所在下标并输出。

请填空完成相应程序功能。

#include<stdio.h>

#defineN80

intmain(void)

{charstr[N];

intcount[26]={0},i=0,max_n,max_i;

gets(str)

(2分);〃输入字符串

While(lSW”

(2分))〃统计字符个数

,,

rcount((int)str(i]-a]++

(2分);

i++;

}

max_n=count[0];max_i=0;

i<strlen(str)

for(i=l;1(2分);i++)〃找出现次数最多的字母

{阡/courrt(i]>max_n

(2分))

{max_n=count[i];

max_i=i;

}

}

printf("%c,%d\n",'a'+irax_i,max_n);

return0;

5-15

从键盘输入一个字符串St,(串中可以包含空格)和一个字符c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论