程序设计与数据结构练习题附答案.pdf
《程序设计与数据结构练习题附答案.pdf》由会员分享,可在线阅读,更多相关《程序设计与数据结构练习题附答案.pdf(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一、单项选择题一、单项选择题1有下列程序段落:int i,a5;for(i=0;ix)&(b=yz);后,a,b 的值为(D D)。A 1 和 1B 0 和 0C 4 和 2D 0 和 2&前一条件为假,无论后面什么情况结果都为假13定义如下变量关系,则下面语句的输出结果是(D D)。int i;int x33=1,2,3,4,5,6,7,8,9;for(i=0;i2)n-;printf(“%d”,n);A 543B432C4321D543217下列四种数组定义,合法的数组定义是(A A)。A char a=hello;B int a4=4,3,2,1,0;C char a=hello;D c
2、har a4=hello;Ak=*p1+*p2;Bk=*p1*(*p2)Cp2=kDp1=p219有如下程序,该程序的输出结果是(C C)。void main(void)chars=“ABCD”,*p;for(p=s+1;paC p-ab.aD p.ab.a25.若要对 E 盘上的一个非空文件“w1.dat”进行修改,正确的打开语句是(D D)。18设 p1 和 p2 均为指向 int 型的指针变量,k 为 int 型变量,下列不正确的赋值语句是(C C)。B 字符型常量C 数组名D 整型表达式23.以下程序的输出结果是(B B)。A fp=fopen(“w1.dat”,“r+”);B fp=
3、fopen(“w1.dat”,“w+”);C fp=fopen(“E:w1.dat”,“r+”);D fp=fopen(“E:w1.dat”,“w+”);26语言程序的三种基本结构是(A A)。顺序结构,分支结构,循环结构递归结构,循环结构,转移结构嵌套结构,循环结构,顺序结构递归结构,分支结构,顺序结构27能正确表达逻辑关系“0a1 或 0b1”的 c 语言表达式是(A A)。.(0a)&(a1)|(0b)&(b1).(0a)|(a1)&(0b)|(b1).(0a1)&(0b1).(0a1)|(0b=a.a%=a30定义如下变量和数组,则下面程序段落的输出结果是(A A)。int i;int
4、 x33=0,1,2,3,4,5,6,7,8;for(i=0;i3;i+)printf(“%d”,xi2-i);2 4 60 3 60 4 82 5 831以下叙述错误的是(D D)。一个 C 源程序可由一个或多个函数组成B 一个 C 源程序必须包含一个main 函数C C 程序的基本组成单位是函数D 在 C 程序中,注释说明只能位于一条语句的后面32C 语言中运算对象必须是整型的运算符是(A A)。A%=B/main()unsigned int x=0 xffff;printf(“%un”,x);A-1B 65535C 32767D 0 xFFFF34若有代数式C=D=33有如下程序,程序运
5、行后的输出结果是(B B)。nxex(其中 e 仅代表自然对数的底数,不是变量),则以下能够正确代表该代数式的C 语言表达式是(C C)。A.sqrt(abs(nx+ex)B.sqrt(fabs(pow(n,x)+pow(x,e)C.sqrt(fabs(pow(n,x)+exp(x)D.sqrt(fabs(pow(x,n)+exp(x)35字符串“t12x42abcd”的长度是(B B)。A 14B 936以下叙述中错误的是(D D)。A 计算机不能直接执行用C 语言编写的源程序B C 语言经 C 编译程序编译后,生成后缀为.obj 的文件是二进制文件C 后缀为.obj 的文件,经连接后生成后
6、缀为.exe 的文件是二进制文件D 后缀为.obj 和.exe 的二进制文件都可以直接运行37以下选项中,与 k=x+;完全等价的表达式是(B B38以下叙述中正确的是(C C)。A break 语句只能用于 switch 语句中B continue 语句的作用是:使程序的执行流程跳出包含它的所有循环C 15D20)。A x=x+1;k=x;B k=x;x=x+1;C k=x+1;D k+=x+1;C break 语句只能用在循环体内和switch 语句体内D 在循环体内使用 break 语句和 continue 语句的作用相同39判断字符型变量 ch 是否为大写英文字母的表达式为(B B)。
7、A A=ch=A&cha&ch=A|ch=Z40若表达式(m)?a+:a-,则表达式 m 和(B B)等价。A m=0B m!=0C m=0D m=141在 c 语言中,运算对象的逻辑值“真”用(B B)表示。A false非 00 负数42已知函数原型声明为:char*www(char a,charb);该函数的类型为(A A)。指向字符型的指针字符型整型指向整型的指针43设 int 类型的数据长度为 2 字节,则该类型数据的取值范围是(D D)。0 至 655360 至 65535-32767 至 32768-32768 至 3276744inta,*p,*w;p=&a,w=&p;取 a
8、的值的表达式为(D D)。*w45语言程序的基本单位是(A A)。A函数B标识符C表达式D语句46判断字符型变量 ch 的值是否为大写英文字母的表达式为(B B)。A.A=ch=A&cha&ch=A|chx)|(b=yz);后,a,b 的值为(C C)。A1 和 1B.0 和 048若有定义语句 inta=1,2,3,4,5,6,7,8,9,10,*p=a;值为 8 的数组元素的正确表示为(D D):A.a8B.a+7C.p+749下列程序运行结果是(A A)。#defineA2#defineAAA+A/2void main(void)A3,11B3,15C2,10D8,4050若有如下定义,
9、则对ex 中的 a 成员的正确引用是(B B)。structsk int a;float b;ex,*p=&ex;A.(*p).ex.aB.p-aC.p-ex.aD.p.ex.a二、填空题二、填空题1在内存中存储一个字符 a 占用_1_1_个字节,而存储字符串”abcdef”则占用_7_7_个字节。2表达式 4/5 的值为_0_0_。3设 x=4.5,a=7,y=3.4,表达式 x+a%3*(int)(x+y)%2/4的值为_ 4._ 4._。4设 a=14,执行 a+=a=a*=a 后,a=_0_0_。5设x=y=z=6,执行 x=(yz)?x+2:x-2;后,x=_4_4_。6getcha
10、r()函数用于输入_字符字符_,而 gets()函数则用于输入_字符串字符串_ _。7设有定义语句:charww20=”twabn”;则表达式:strlen(ww)的值是_6 6。printf(“%dn”,5*AA);printf(“%d,”,AA);8设有定义语句:charstr7=”abcdef”,则数组元素 str2中的字符是_c c_,数组元素 str6中的字符是_ 0_0_。9函数中的形参和调用时的实参都是变量时,传递方式为_值传递值传递_;都是数组名时,传递方式为_地址传递地址传递_。10设有 char*p=”12345”,则 printf(“%s”,p)的输出是_12345123
11、45_;而 printf(“%c”,*p)的输出则是_1 1_。11若 s 是 int 型变量,且 s=7,则表达式:s/2+(s+1)%2 的值为_3 3_。12C 语言中,以0 x0 x_打头的 int 常数是十六进制。13有说明语句 char s=102;S 包含了_1 1_个字符。14有数学表达式 sinx+x-6x,写出其对应的 C 语言的表达式 _sin(x)+sqrt(x)-6*x_sin(x)+sqrt(x)-6*x_。15有定义语句:int a3=0,1,2;则数组元素 a12的值是0 0。16若程序中使用了函数strlen(),则必须包含的头文件名为_string.hstr
12、ing.h_。17有如下程序,该程序的输出结果是a=2,b=1a=2,b=1。void main(void)intx=1,a=0,b=0;switch(x)case 0:b+;case 1:a+;case 2:a+,b+;printf(a=%d,b=%dn,a,b);18.若 a 函数中调用了 b 函数,而 b 函数又调用了 a 函数,这种调用称为_ _递归递归_调用。19函数调用时,若形参和实参均为数组名时,传递方式为 _地址传递地址传递_ _。20若有以下定义语句,则输出的结果是_4_4_。char s1=“abcdef”,*s2=“1234”;printf(“%dn”,strlen(st
13、rcpy(s1,s2);21若宏定义为:#definey(x)2+x则表达式 a=4+3*y(2)的值为1212。22设有以下语句:static int a42=1,2,3,4,5,6,7,8;int(*p)2;p=a;则*(*(p+2)+1)的值为6 6。23在 turbo C 中,int 型数据占 2 字节,则定义struct nodechar x10;int y;union float a;long b;ab;t;后,sizeof(t)=1616。24.设有一个名为“ww1.c”的 C 程序,其主函数为 main(int argc,char*argv),如果在执行时,输入的命令行为:ww
14、1 aa bb cc则形式参数 argc 的值是_4_4_。25.执行下列程序段后,(*q-1)的值为 _9999_。int a,*p,*q;a=100;p=&a;q=&p;26C 语言源程序中主函数名由系统规定为 _mainmain_,程序员是不能改变的。27有数学表达式:x-3,其 C 语言表达式为 _sqrt(x)-3sqrt(x)-3_。28已知函数定义为:intstat(int a,float*p).则此函数的两个参数类型分别是整型整型、指向浮点型指针指向浮点型指针。29设有数组 a10;则首地址可以写成 _a_a 或或&a0&a0_数组元素 a3的地址可以写成_&a3&a3或或 a
15、+3a+3_。30要使以下程序段中的函数调用语句printf(“*”);执行 10 次,应在 处填入整数 _1919 或或 2020_。for(i=1;i=_;i+=2)printf(“*”);31用只读方式打开 e:目录下的名为“aa.dat”的文件,正确的打开语句为 FILE*fp;fp=_fopen(_fopen(“e:“e:aa.dat”,”r”)aa.dat”,”r”)_。32.判断两个浮点型变量 x 和 y 是否相等一般用:if(fabs(xfabs(x y)y)1e-6)。33.已知赋值语句 zhang.year=1985;可判断 zhang 是结构体结构体类型的变量。三、程序分
16、析题三、程序分析题1 下面程序的运行结果为5,6,5,05,6,5,0#include void main()int a,b,c,d;a=4;b=6;c=+a;d=(ca&cb);printf(%d,%d,%d,%d,a,b,c,d);2.下面程序的运行结果为c=1c=1 d=0.d=0.#include void fun(intx,inty)inta,b;floatd;a=x+14;b=y-4;d=(float)(b/a);printf(d=%fn,d);void main(void)intb=9,a=6,c;c=b/a;printf(c=%dn,c);fun(a,b);3设从键盘上输入He
17、llo World!下面程序的运行结果为hello world!hello world!#include void main(void)char ss20;int i;gets(ss);for(i=0;ssi!=0;i+)if(ssi=A&ssi=Z)ssi=ssi+32;puts(ss);4下面程序的运行结果为b=-10b=-10 i=33,b=0i=33,b=0 i=75,b=33i=75,b=33#include inti=1;void other(void);void main(void)int b=-10;printf(b=%dn,b);other();i=i+10;other();
18、void other()staticintb;i=i+32;printf(i=%d,b=%dn,i,b);b=i;5下面程序的运行结果为6,456,45 2,982,98#include void main(void)int a10=78,89,98,66,54,76,45,82,62,95;intka,ki,j;ka=ki=0;for(j=1;jaj)ki=j;if(aka aj)ka=j;printf(“%d,%dn%d,%dn”,ki,aki,ka,aka);6.运行时假定键盘输入数据为:12345678910 下面程序的运行结果为1 3 5 7 91 3 5 7 9#includevo
19、idmain(void)inti,a 10;int*p;p=a;for(i=0;i10;i+)scanf(“%d”,p+);for(p=a;pa+10;p+)if(*p%2)printf(“%3d”,*p);7下面程序的运行结果为10,10,10101 101011111(要求注明输出格式!)#include void main(void)int a=10,b=11;int c=0,d=0;printf(%5d,%5dn,a+,-b);printf(%5d,a&b);printf(%5d,!a);printf(%dn,!c);printf(%5d,d+=a);8下面程序的运行结果为1+1=21
20、+1=21+2=31+2=31+3=41+3=4 2+2=42+2=42+3=52+3=53+3=63+3=6#include void main(void)int i,j;for(i=1;i4;i+)for(j=i;j4;j+)printf(“%d+%d=%d”,i,j,i+j);printf(“n”);9下面程序的运行结果为a=1,b=-5,c=0a=1,b=-5,c=0a=2,b=2,c=10a=2,b=2,c=10a=3,b=-5,c=2a=3,b=-5,c=2#includeint a=1,b;void fun(void);void main(void)static int c;in
21、t b=-5;printf(a=%d,b=%d,c=%dn,a,b,c);fun();a+=1;c+=2;printf(a=%d,b=%d,c=%dn,a,b,c);voidfun()int c=10;a+=1;b+=2;printf(a=%d,b=%d,c=%dn,a,b,c);10.下面程序的运行结果为ABCDABCDBCDBCDCDCD D D#includemain()char str5,*p;int i;for(i=0;i4;i+)stri=A+i;stri=0;p=str;while(pstr+4)printf(%sn,p);p+;11下面程序的运行结果为Input score:*
22、Input score:*No:1001No:1001Name:Wang yongName:Wang yong Score:*.0Score:*.0#includevoid main(void)struct studint no;char*name;float score;stu1,stu2;stu1.no=1001;stu1.name=Wang yong;printf(Input score:);scanf(%f,&stu1.score);stu2=stu1;printf(No:%dnName:%snScore:%5.1fn,stu2.no,stu2.name,stu2.score);#in
23、cludeint fun(int*a,int n)int i,k=0;printf(“%d,%d n”,*a,n)for(i=0;in;i+,a+)if(*a%2)continue;elsek+=*a;12.下面程序的运行结果为3,83,82828return k;void main()int aa10=1,2,3,4,5,6,7,8,9,10,s;s=fun(aa+2,8);printf(%dn,s);四、四、程序设计题程序设计题1.有一分段函数:2x+5(x=2)y=3x-4(2x5)编程序,输入变量 x 的值,计算并输出 y 的值。#includeint main(void)int x,
24、y;scanf(%d,&x);if(x 5)y=7;else y=3*x-4;printf(%d,y);2由键盘任意输入 9 个整数,组成 3 行 3 列的二维数组,统计主对角线上元素的和。#includeint main(void)int a33,i,j,sum=0;for(i=0;i3;i+)for(j=0;j3;j+)scanf(“%d”,&aij)for(i=0;i=2;i+)for(j=i;j=i;j+)sum+=aij;printf(“sum=%d”,sum)1111.3编写程序,通过级数求的值,要求精度为 10-6(即4357某项的绝对值小于 10-6),输出结果的值。#incl
25、ude#includeint main(void)float pi=0,t=1,it=1;int s=1;while(fabs(t)1e-6)pi+=t;it+=2;s=-s;t=s/it;printf(PI=%f,4*pi);4编写一程序任意输入一串字符,统计其中大写字母的个数,并输出结果。#include#includeint main(void)char a1000;int i,count=0;scanf(%s,a);for(i=0;i=A&ai 0y=0 x=01x0输入 x 的值,输出结果。#include#includeint main(void)int x,y;scanf(%d,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 数据结构 练习题 答案
限制150内