计算机应用基础(第四版)章节自测题带答案课后练习题1-10章全_第1页
计算机应用基础(第四版)章节自测题带答案课后练习题1-10章全_第2页
计算机应用基础(第四版)章节自测题带答案课后练习题1-10章全_第3页
计算机应用基础(第四版)章节自测题带答案课后练习题1-10章全_第4页
计算机应用基础(第四版)章节自测题带答案课后练习题1-10章全_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

习题1

一、选择题

1.所有C函数的结构都包括的三部分是()。

A.语句、花括号和函数体

B.函数名、语句和函数体

C.函数名、形式参数和函数体

D.形式参数、语句和函数体

2.C程序由()组成。

A.子程序B.主程序和子程序C.函数D.过程

3.下面属于C语言标识符的是()。

A.2abB.@fC.?bD._al2

4.C语言中主函数的个数是()。

A.2个B.1个C.任意个D.10个

5.下列关于C语言注释的叙述中错误的是()。

A.以“/*”开头并以“*/”结尾的字符串为C语言的注释内容

B.注释可出现在程序中的任何位置,用来向用户提示或解释程序的意义

C.程序编译时,不对注释作任何处理

D.程序编译时,需要对注释进行处理

6.下列不是C语言的分隔符的是()。

A.逗号B.空格C.制表符D.双引号

7.下列关于C语言的关键字的叙述中错误的是()。

A.关键字是C语言规定的具有特定意义的字符串,通常也称保留字

B.用户定义的标识符不应与关键字相同

C.ANSIC标准规定的关键字有64个

D.ANSIC标准规定的关键字有32个

8.在VisualC++6.0环境下,C源程序文件名的默认后缀是()。

A..cppB..exeC..objD..dsp

9.若在当前目录下新建一个名为“LX”的工程,则在当前目录下生成的工作区文

件名为()。

A.LX.DSWB.LX.OPTC.LX.DSPD.LX.C

10.面可能不影响程序正常运行的是()。

A.语法错误B.逻辑错误C.警告提示D.算法错误

二、填空题

1.C程序是由________构成的,一个C程序中至少包含。因此,

是C程序的基本单位。

2.C程序注释是由_______和所界定的文字信息组成的。

-1-

3.开发一个C程序要经过编辑、编译、和运行4个步骤。

4.在C语言中,包含头文件的预处理命令以开头。

5.在C语言中,主函数名是。

6.在C语言中,行注释符是。

7.在C语言中,头文件的扩展名是。

8.在VisualC++6.0IDE中,按下Ctrl键的同时按键,可以运行可执行程序文

件。

9.在VisualC6.0环境中用RUN命令运行一个C程序时,这时所运行的程序的后

缀是。

10.C语言源程序文件的扩展名是;经过编译后,生成文件的后缀是

;经过连接后,生成文件的扩展名是。

三、程序设计题

1.编写程序输出以下图案

*

*s*

*

2.试编写一个C程序,输出如下信息。

Youarewelcome!

3.编写程序,分别用scanf函数和getchar函数读入两个字符送给变量cl、c2,然

后分别用putchar函数和printf函数输出这两个字符。上机运行此程序,比较用

putchar函数和printf函数输出字符的特点。

习题2

1.简述算法的概念。

2算法应具备哪些特性?

3分别说明什么是自然语言描述法,什么是框图语言描述法,什么是伪语言描述法,什

么是N-S流程图语言描述法,它们的优缺点各是什么?

4在结构化程序设计方法中,有哪几种基本结构?

5请用程序流程图语言和N-S流程图语言分别写出打印乘法九九口诀表的算法。

6仿照例2-3的程序,依照流程图,编写例2-1的程序。

7仿照例2-3的程序,依照流程图,编写例2-2的程序。

8仿照例2-3的程序,依照流程图,编写例2-4的程序。

9仿照例2-3的程序,依照流程图,编写例2-5的程序。

习题3

一、选择题

1.关于c语言数据类型的叙述,正确的是()。

A.枚举类型不是基本类型B.数组不是构造类型

C.变量必须先定义后使用D.不允许使用空类型

2.对于C语言源程序,以下叙述错误的是()。

A.可以有空语句

B.函数之间是平等的,在一个函数内部不能定义其他函数

C.程序调试时如果没有提示错误,就能得到正确结果

D.注释可以出现在语句的前面

3.下面关于C语言用户标识符的描述,正确的是().

A.不区分大小写B.用户标识符不能描述常量

C.类型名也是用户标识符D.用户标识符可以作为变量名

4.以下()是正确的变量名。

A.5fB.ifC.f.5D._f5

5.以下()是正确的常量。

A.E-5B.1E5.1C.'a12'D.32766L

6.以下()是正确的变量名。

A.a.beeB.-pl1C.intD.p_l1

7.以下()是正确的字符常量。

A."c"B.V"C.'W'D."\32a"

8.以下()是不正确的字符串常量。

A.'abc'B."12'12"C."0"D.""

9.以下()是错误的整型常量。

A.-OxcdfB.018C.OxeD.011

10.以下()是正确的浮点数。

A.e3B..62C.2e4.5D.123

11.若有说明语句:charc='\95,;则变量c包含()个字符。

A.1B.2C.3D.语法错误

12.若有定义:inta=2;则正确的赋值表达式是()。

A.a-=(a*3)B.double(-a)C.a*3D.a*4=3

13.语句x=(a=3,b=++a);运行后,x、a、b的值依次为()。

A.3,3,4B.4,4,3C.4,4,4D.3,4,3

14.语句a=(3/4)+3%2;运行后,a的值为()。

A.OB.1C.2D.3

15.char型变量存放的是()。

A.ASCII代码值B.字符本身C.十进制代码值D.十六进制代

码值

16.若有定义:intx,a;则语句x=(a=3,a+l);运行后,x、a的值依次为()。

A.3,3B.4,4C.4,3D.3,4

17.若有定义:inta;则语句a=(3*4)+2%3;运行后,a的值为()。

A.12B.14C.11D.17

18.若有定义:inta,b;doublex;则以下不符合C语言语法的表达式是()。

A.x%(-3)B.a+=-2C.a=b=2D.x=a+b

19.若有定义:intx=2,y=3;floati;,则以下符合C语言语法的表达式是()。

A.x=x*3=2B.x=(y==l)C.i=float(x)D.i%(-3)

20.设double型变量a,b,c,e均有值;对代数式(3ae)/(bc),不正确的C语言表达式

是()。

A.a/b/c*e*3B.3*a*e/b/cC.3*a*e/b*cD.a*e/c/b*3

二、填空题

1.设a为short型变量,描述“a是奇数”的表达式是。

2.若有定义:inta=5,b=2,c=l;则表达式a-b<c||b==c的值是。

3.已知charcdA'inti=l;j=0;执行语句j=!c&&i++后,i和j的值分别是和。

4.若有定义:floatx=3.5;intz=8;则表达式x+z%3/4的值为。

5.若有定义:inta=l,b=2,c=3,d=4,x=5,y=6;则表达式(x=a>b)&&(y=c>d)的值

为。

6.若有定义:inta=2,b=3;floatx=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的

值是。

7.若有定义:intb=7;floata=2.5,c=4.7;则表达式a+(b/2*(int)(a+c)/2)%4的值

是。

三、程序设计题

1.已知圆的半径r=2.5,圆柱高h=1.8,求圆周长,圆柱体积。

2.要将“China”译成密码,译码规律是:用原来字母后面的第4个字母代替原

来的字母。例如,字母“A”后面第4个字母是“E",用“E”代替“A”。因

此,“China”应译为“Glmre”。请编写1程序,用赋初值的方法使cl、c2、c3、

c4、c5五个变量的值分别为‘C'、'h'、'i'、'n'、'a',经过运算,

使cl、c2、c3、c4、c5分别变为‘G'、T、'm'、、'、,e'并输出。

(1)输入事先已编好的程序,并运行该程序,分析是否符合要求。

(2)改变cl、c2、c3、c4、c5、的初值为:'T'、'o'、'd'、'a'、'y',

对译码规律作如下补充:'W'用'A'代替,'X'用'B'代替,'Y‘用‘C'

代替,‘Z'用'D'代替。修改程序并运行。

(3)将译码规律修改为:将字母用它前面的第4个字母代替,例如:‘E‘用‘A'

代替,'Z'用'V'代替,'D‘用'Z'代替,‘C‘用‘Y'代替,,B‘用‘X'

代替,'A'用'W'代替。修改程序并运行。

3.输入秒数,将它按小时、分钟、秒的形式来输出。例如输入24680秒,则输

出6小时5分20秒。

习题4

一、选择题

1.有如下程序

main()

{inta=2,b=-l,c=2;

if(a<b)

if(b<0)c=0;

elseC++;

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

该程序的输出结果是()

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

2.对do...while语句错误的描述是:()

A)可构成多重循环结构B)循环次数不可能为0

C)循环次数可能为0D)先执行后判断

3.任何复杂的程序,都是由()构成的。

A)分支结构、顺序结构、过程结构B)循环结构、分支结构、过程结构

C)顺序结构、循环结构、分支结构D)循环结构、分支结构

4.设有intx,y;以下语句判断x和y是否相等,正确的说法是该语句()。

if(x=y)printf("xisequaltoy.");

A)语法错B)不能判断x和y是否相等

C)编译出错D)能判断x和y是否相等

5.C语言中规定,if语句的嵌套结构中,else总是()配对。

A)与最近的ifB)与第一个if

C)与按缩进位置相同的ifD)与最近的且尚未配对的if

6.以下有关switch语句的说法正确的是()。

A)break语句是语句中必需的一部分

B)在switch语句中可以根据需要使用或不使用break语句

C)break语句在switch语句中不可以使用

D)在switch语句中的每一个case都要使用break语句

7.当执行以下程序时,()。

#include<stdio.h>

voidmain()

inta;

while(a=5)

printf("%dK,a-);

A)循环体将执行5次B)循环体将执行0次

C)循环体将执行无限次D)系统会死机

8.以下if语句错误的是()。

A)if(x<y)x++;y++;elsex—;y—;

B)if(x)x+=y;

C)if(x<y);

D)if(x!=y)scanf("%d",&x);elsex++;

9.以下说法错误的是()。

A)do...while语句与while语句的区别仅是关键词“while”出现的位置不同

B)while语句是先进行循环条件判断,后执行循环体

C)do...while是先执行循环体,后进行循环条件判断

D)while、do...while和for语句的循环体都可以是空语句

二、填空题

1.有程序段:

inti=0,a=1;

while(i<9)

{i++;

++a;

)

其中,循环条件是循环控制变量是循环体是一,修改循环条件

的语句是一,该循环条件将执行一次,结束循环时,i的值是一,a的值是一。

2.有程序段:

inti=0,a=l;

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

(

a++;

)

其中,循环条件是—,循环控制变量是—,循环体是一,修改循环条件

的语句是—,该循环条件将执行一次,结束循环时,i的值是a的值是一。

3.以下程序的输出结果是.

#include<stdio.h>

main()

{intn=12345,d;

while(n!=O){d=n%10;printf(n%d",d);n/=10;}

}

4.以下程序判断输入的整数能否被3或7整除,请填空。

main()

{intx,f=O;

scanf("%d",&x);

if(1)

(2)

if(f=l)printsYES\nM);

elseprintf("NO\n");

)

三、程序阅读题

1.阅读以下程序,若输入60,写出程序运行结果。

#include<stdio.h>

voidmain()

{intx;

scanf(H%d”,&x);

if(x>=60)

printf(Mpassn);

else

printfCfair*);

)

2.阅读以下程序,若输入5,写出程序运行结果。

#include<stdio.h>

intmain()

{inti,n;

doublefact;

scanf(H%d",&n);

fact=l;

for(i=l;i<=n;i++)

fact*=i;

printf(,,%.Of\nH,fact);

)

四、程序设计题

1.输入一个整数,输出它的绝对值。

2.编写程序,统计从键盘输入的一行字符的个数。

3.编写程序,用穷举法输出100以内的素数。

4,求1!-2!+3!—4!+......+49!—50!的和。

5.输入10个字符,分别统计出其中空格或回车键、数字和其他字符的个数。

习题5

一、选择题

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

intk=3,s[2];

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

A.不定值B.33C.30D.10

2.执行下列程序时输入:123〈空格>456〈空格>789〈回车〉,输出结果是()。

voidmain()

{chars[100];

intc,i;

scanf("%c",&C);

scanf(M%dH,&i);

scanf(n%s",s);

printf(H%c,%d,%s\nn,c,i,s);

)

A.123,456,789B.1,456,789C.1,23,456,789D.1,23,456

3.有如下程序:

voidmain()

(

intn[5]={0,0,0},i,k=2;

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

n[i]=nli]+l;

prmtf("%d\nH,n[k]);

)

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

A.不确定的值B.2C.1D.0

4.有如下程序

voidmain()

(

inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=O;

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

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

printf(n%d\nu,s);

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

A.14B.15C.16D.17

5.以下程序的输出结果是()o

voidmain()

(

inti,x[3][3]={1,2,3,4,5,67,8,9};

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

printf(H%d,M,x[i][2-i]);

)

A.1,5,9B.1,4,7C.3,5,7D.3,6,9

6.以下程序的输出结果是()o

main()

{charw[][10]={,,ABCD","EFGHn,"IJKL',;,MNOP"},k;

for(k=l;k<3;k++)

printf(u%s\nn,w[k]);

A.ABCDB.ABCDC.EFGD.EFGH

FGHEFGJKIJKL

KLIJO

M

7.下面语句中不正确的是()。

A.staticinta[5]={1,2,3,4,5};B.staticinta[5J={1,2,3};

C.staticinta[]={0,0,0,0,0};D.staticinta[5]={0*5};

8.若有说明:inta[][4]={1,2,3,4,5,6,7,8,9),则数组第一维的大小为()。

A.2B.3C.4D.不确定的值

9.若定义staticinta[2][2]={1,2,3,4};则a数组的各数组元素分别为()。

A.a[0][01=1,a[0][l]=2,a[l][0]=3,a[l][l]=4

B.a[0][0]=1,a[0][l]=3,a[l][0]=2,a[l][l]=4

C.a[0][0]=4,a[0][ll=3,a[l][0]=2,a[l][l]=l

D.a[0][0]=4,a[0][l]=2,a[l][0]=3,a[l][l]=l

10.下列语句中,不正确的是()。

A.staticinta[2][3]={1,2,3,4,5,6)

B.staticinta[2][3]={{1},{4,5}};

C.staticinta[][3]={{1},{4}};

D.staticinta[][]={{1,2,3},{4,5,6}};

二、填空题

1.设有数组定义为:chararray[]="China";则数组array所占的空间为。

2.main()

{chararr⑵[4];

strcpy(arr,"youn);strcpy(arr[l],"meH);

arrlO][3]=>&,;

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

}

程序执行后的输出结果是O

3.main()

{inti,k,a[10],p[3]:

k=5;

for(i=0;i<10;i++)a[i]=i;

for(i=0;i<3;i++)p[i]=a[i*(i+l)];

for(i=0;i<3;i++)k=k+p[i]*2;

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

)

程序执行后的输出结果是O

4.main()

{charch[7]={"65ab21n};

inti,s=0

for(i=0;ch[i]>='0'&&ch[i]<-9,;i+=2)

s=10*s+ch[i]-10,;

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

)

程序运行的结果是。

三、程序设计题

1.从键盘上输入10个整数,并放入一个一维数组中,然后将其前5个元素与后5个

元素对换,即:第1个元素和第10个元素互换,第二个元素和第9个元素互换……分别

输出数组原来的值和对换后各元素的值。

2.设有如下两组数组:

A:2,8,7,6,4,28,70,25

B:79,27,32,41,57,66,78,80

编写一个程序,把上面两组数据分别读入两个数组中,然后把两个数组中对应下标

的元素相加,即2+79,8+27……并把相应的结果放入第三个数组中,最后输出第三个数

组的值。

3.编写程序,把下面的数据输入到一个二维数组中:

25367813

12268893

75182232

56443658

然后执行以下操作:

a.输出矩阵两条对角线上的数;

b.交换第一行和第三行的位置,然后输出。

习题6

一、选择题

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

A.doublefun(intx,inty)

B.doublefun(intx;inty)

C.doublefun(intx,inty);

D.doublefun(intx,y);

2.在C语言中,以下说法不正确的是()。

A.实参可以是常量、变量或表达式

B.形参可以是常量、变量或表达式

C.实参可以为任意类型

D.形参应与其对应的实参类型一致

3.以下说法正确的是()。

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

B.relum后边的值不能为表达式

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

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

4.C语言允许函数值类型缺省定义,此时该函数值默认的类型是()。

A.float型

B.int型

C.long型

D.double型

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

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

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

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

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

6.以下错误的描述是()。

函数调用可以:

A.出现在执行语句中

B.出现在一个表达式中

C.作为一个函数的实参

D.作为一个函数的形参

7.以下正确的描述是()。

在C语言程序中:

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

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

C.函数的定义和函数的调用均不可以嵌套

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

8.在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局

变量,则该变量需要使用的存储类别是()o

A.externB.registerC.autoD.static

9.若有以下宏定义:

#defineN2

#defineY(n)((N+l)*n)

则执行语句Z=2*(N+Y(5));后结果是()。

A.语句有误B.Z=34C.Z=70D.Z无定值

10.在宏定义#definePI3.14159中,用宏名PI代替一个()。

A.常量B.单精度数C.双精度数D.字符串

二填空题

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

#include"stdio.h"

voidmain()

(

intI=2,x=5,j=7;

fun(j,6);

printf("I=%d;j=%d;x=%d\n",I,j,x);

)

fun(intI,intj)

(

intx=7;

printf("I=%d;j=%d;x=%d\n",I,j,x);

)

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

#include"stdio.h"

voidmain()

voidincrement();

increment();

increment();

increment();

)

voidincrement()

(

intx=O;

x+=l;

printf(H%d”,x);

)

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

#include"stdio.h"

voidmain()

(

intmax(intx,inty);

inta=l,b=2,c;

c=max(a,b);

printf(nmaxis%d\n”,c);

)

intmax(intx,inty)

(

intz;

z=(x>y)?x:y;

retum(z);

)

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

#include"stdio.h"

voidmain()

{

voidadd(intx,inty,intz);

intx=2,y=3,z=0;

printf("(l)x=%dy=%dz=%d\n",x,y,z);

add(x,y,z);

printf("(3)x=%dy=%dz=%d\n",x,y,z);

)

voidadd(intx,inty,intz)

{z=x+y;

x=x*x;

y=y*y;

printf("(2)x=%dy=%dz=%d\n",x,y,z);

}

三、程序设计题

1.编写一个函数,判断一个数是不是素数。在主函数中输入一个整数,输出是否

是素数的信息。要求:

(1)编写一个函数prime(n),返回给定整数n是否为素数。

(2)编写一个主函数,输入一个整数,调用(1)中的函数,判断此整数是否为素数,

并输出结果.

2.函数fun的功能是:统计各年龄段的人数并存到b数组中,n个人员的年龄放在

a数组中。年龄为1到9的人数存到b[0]中,年龄为10到19的人数存到b[l],年龄为

20到29的人数存到b⑵,年龄为30到39的人数存到b[3],年龄为40到49的人数

存到b[4J,年龄为50岁以上的人数存到b[5]中。

例如,当a数组中的数据为:

9、18、27、38、59、33、14、75、38。

调用该函数后,b数组中存放的数据应是:

1、2、1、3、0、2o

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你

编写的若干语句。

#include"stdio.h"

voidfun(inta[],intb[],intn)

)

voidmain()

(

inti,a[100]={9,l8,27,38,59,33,14,75,38},b[6]={0);

fun(a,b,9);

printf(MTheresultis:");

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

printf(n%du,b[i]);

pHntf("\n");

习题7

一、单项选择题

1.设有定义:intnl=0,n2,*p=&n2,*q=&nl;以下赋值语句中与n2=nl;语句等价的

是()。

A.*p=*q;B.p=q;C.*p=&nl;D.p=*q;

2.若有定义:intx=0,*p=&x;,则语句printf("%d\n",*p);的输出结果是()。

A.随机值B.OC.x的地址D.p的地址

3.以下定义语句中正确的是()。

A.chara=,A,b=,B';B.floata=b=10.0;

C.inta=10,*b=&a;D.float*a,b=&a;

4.有以下程序

main()

{inta=7,b=8,*p,*q,*r;

p=&a;q=&b;

r=p;p=q;q=r;

printf("%d,%d,%d,%d\n”,*p,*q,a,b);

)

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

A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7

5.设有定义:inta,*pa=&a;以下scanf语句中能正确为变量a读入数据的是()。

A.scanf("%d",pA);B.scanf("%d",A);

C.scanf("%d",&pA);D.scanf("%d",*pA);

6.设有定义:intn=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是()。

A.p=l;B.*q=2;C.q=p;D.*p=5;

7.有以下程序

voidfun(char*a,char*b)

{a=b;(*A)++;}

main()

{charcl=,A\c2=,a\*pl,*p2;

pl=&cl;p2=&c2;fun(pl,p2);

printf("%c%c\n",cl,c2);

)

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

A.AbB.aaC.AaD.Bb

8.若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是

()O

A.float*i=NULL;B.floata,*f=&a;

scanf("&d",f);

C.chart=,m,,*c=&t;D.long*L;

*c=&t;L=\0;

9.有以下程序

#include<stdio.h>

main()

{printf(M%d\nM,NULL);}

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

A.0B.1C.-1D.NULL没定义,出错

10.已定义以下函数:

fun(int*p)

{return*p;}

该函数的返回值是()。

A.不确定的值B.形参p中存放的值

C.形参p所指存储单元中的值D.形参p的地址值

11.下列函数定义中,会出现编译错误的是()。

A.voidmax(intx,inty,int*z)B.intmax(intx,y)

{*z=x>y?x:y;}{intz;

z=x>y?x:y;

returnz;

)

C.max(intx,inty)D.intmax(intx,inty)

{intz;{return(x>y?x:y);}

z=x>y?x:y;return(z);

)

12.有以下程序段:

main()

{inta=5,*b,**c;

c=&b;b=&a;

)

程序在执行了c=&b:b二&a;语句后,表达式:**c的值是()。

A,变量a的地址B.变量b中的值C.变量a中的值D.变量b的地址

13.有以下程序:

main()

{chara,b,c,*d;

a='\';b='\xbc’;

c=t\0xab,;d=n\017";

print(,'%c%c%c\n',,a,b,c,*d);

)

编译时出现错误,以下叙述中正确的是()。

A.程序中只有a=';语句不正确B.b='\xbc';语句不正确

C.d="\017”;语句不正确D.a='\';和c='\Oxab';语句

都不正确

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

#include<stdio.h>

inta=4,b=3,*p,*q,*w;

p=&a;q=&b;w=q;q=NULL;

则以下选项中错误的语句是()。

A.*q=0;B.w=p;C.*p=a;D.*p=*w;

15.有以下程序:

#include<stdio.h>

int*f(int*x,int*y)

(

if(*x<*y)

returnx;

else

returny;

}

voidmain()

(

inta=7,b=8,*p,*q,r;

p=&a;

q=&b;

r=*f(p,q);

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

)

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

A.7,8,8B.7,8,7C.8,7,7D.8,7,8

16.若有说明:intn=2,*p=&n,*q=p;,则以下非法的赋值语句是()。

A.p=q;B.*p=*q;C.n=*q;D.p=n;

17.有以下程序:

voidfun(char*c,intd)

{*c=*c+l;d=d+l;

printf("%c,%c,",*c,d);

main()

{chara='A',b='a';

fun(&b,A);printf("%c,%c\n”,a,b);

)

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

A.B,a,B,aB.a,B,a,BC.A,b,A,bD.b,B,A,b

18.若有说明语句:inta,b,c,*d=&c;,则能从键盘读入三个整数分别赋给变量a、

b、c的语句是()。

A.scanf(M%d%d%d';&a,&b,d);B.scanf("%d%d%d”,&a,&b,&d);

C.scanf("%d%d%d”,a,b,d);D.scanf("%d%d%d”,a,b,*d);

19.若定义:inta=511,*b=&a;,则printf("%d\n”,*b);的输出结果为()。

A.无确定值B.a的地址C.512D.511

20.若有说明:inti,j=2,*p=&i;,则能完成i=j赋值功能的语句是()。

A.i=*p;B.p*=*&j;C.i=&j;D.i=**p;

二、填空题

1.有以下程序

voidf(inty,int*x)

{y=y+*x;*x=*x+y;}

main()

{intx=2,y=4;

f(y,&x);

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

)

执行后输出的结果是o

2.下面程序的运行结果是o

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

)

main()

{intx=3,y=5,*p=&x,*q二&y;

swap(p,q);

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

)

3.设有以下程序:

main()

{inta,b,k=4,m=6,*pl=&k,*p2=&m;

a=pl=&m;

b=(*p1)/(*p2)+7;

printf(“a=%d\n”,A);

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

执行该程序后,a的值为,b的值为o

4.下列程序的输出结果是o

voidfun(int*n)

{while((*n)—);

printf(“%d”,++(*n));

)

main()

{inta=100;

fun(&A);

)

5.以下函数用来求出两整数之和,并通过形参将结果传回,试完整程序。

voidfunc(intx,inty,z)

{*z=x+y;}

6.函数voidfun(float*sn,intn)的功能是:根据公式s=l-l/3+l/5-...l/(2n+l)计算S,

计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。试完整程序。

voidfun(float*sn,intn)

{floats=0.0,w,f=-1.0;

inti=0;

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

{f=*f;

w=f/(2*i+l);

s+=w;

)

__=S;

)

7.以下函数的功能是,把两个整数指针所指的存储单元中的内容进行交换,试完整程

序。

exchange(int*x,int*y)

{intt;

)

8.下面函数要求用来求出两个整数之和,并通过形参传回两数相加之和值,试完整程

序。

intadd(intx,inty,z)

{=x+y;}

三、程序设计题

1.编写一个函数,将数组中n个数按反序存放。

2.用地址法输入输出二维数组各元素。

3.用指针法输入输出二维数组各元素。

6.1习题8

一、单项选择题

1.设有定义语句“struct{intx;inty;}d[2]={{1,3},{2,7}};”,则

printf("%d\n”,d[O].y/d[O].x*d[l].x);的输出结果是()。

A.0B.1C.3D.6

2.设有定义语句"enumteam{my,your=4,his,her=his+10},则printf

C4%d,%d,%d,%d\nmy,your,his,her);的输出结果是()。

A.O,1,2,3B.O,4,0,10C.0,4,5,15D.1,4,5,15

3.以下对枚举类型名的定义中正确的是()o

A.enuma={one,two,three);B.enuma{al,a2,a3};

C.enuma={T,'2','3'};D.enuma{"one”,"two","three"};

4.若有如下定义,则printf("%d\n”,sizeof(them));的输出是()。

typedefunion{longx[2];inty[4];charz[8];}MYTYPE;

MYTYPEthem;

A.32B.16C.8D.24

5.

温馨提示

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

评论

0/150

提交评论