C语言程序设计期末试题及答案1 1.以下程序输出结果是() main() {intm=5; if(m++>5)printf(%d\n,m); elseprintf(%d\n,m--下面是小编为大家整理的2023年度C语言程序设计期末试题及答案3篇(2023年),供大家参考。
C语言程序设计期末试题及答案1
1.以下程序输出结果是( )
main()
{ int m=5;
if(m++>5) printf("%d\n",m);
else printf("%d\n",m--);
A)7 B)6 C)5 D)4
2以下程序的输出结果为( )
# include
main ( )
{ int i=0, j=0, a=6;
if ((++i>0)&&(++j>0)) a++;
printf ("i=%d, j=%d, a=%d\n", i,j,a);}
A) i=0, j=0, a=6 B) i=1, j=1, a=7
C) i=1, j=0, a=7 D) i=0, j=1, a=7
3有如下程序
main()
{ int a=2,b=-1,c=2;
if(a
if(b<0) c=0;
else c++;
printf("%d\n",c);
}
该程序的输出结果是( )
A) 0 B) 1 C) 2 D) 3
4若i为int型,且有程序如下,则输出结果是( )
i=111;
if(i%3==0)
printf("####");
printf("****");
A) #### B) **** C) ####**** D) 无输出结果
5若运行时x=12,则运行结果为( )
{int x, y;
scanf("%d", &x);
y=x>12 ? x+10:x-12;
printf("%d\n", y);}
A) 0 B) 22 C) 12 D) 10
6以下程序的输出结果是( )
main()
{ int i=0, j=0, k=6;
if ((++i>0)||(++j>0)) k++;
printf("%d, %d, %d\n", i, j, k);
}
A) 0, 0, 6 B) 1, 0, 7 C) 1, 1, 7 D) 0, 1, 7
7若变量都已正确说明,则以下程序段输出为( )
int a=1,b=2,c=3;
if(a>b)
a=b;
b=c;
c=a;
printf("a=%d b=%d c=%d\n",a,b,c);
A)a=1 b=2 c=1 B)a=1 b=2 c=3
C)a=1 b=3 c=1 D)a=2 b=3 c=2
8当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是( )
if(a
if(c else if(a if(b else x=3; else x=6; else x=7; A) 1 B)2 C)3 D)6 9以下不正确的语句为( ) A)if(x>y); B)if(x==y)&&(x!=0)x+=y; C)if(x!=y)scanf("%d",&x);else scanf("%d",&y); D)if(x 10有以下程序: #include"stdio.h" main( ) {char i; for (; (i=getchar ())!="\n";) {switch (i-"a") {case 0: putchar (i); case 1: putchar (i+1);break; case 2: putchar (i+2); case 3: break; default: putchar (i);break; } } printf ("\n"); } 输入下列数据后,程序的输出结果是( ) abcde A) abcde B) abcee C) abbde D) abccdd 11若a、 b、c1、c2、x、y、均是整型变量,正确的switch语句是( ) A) switch(a+b); B) switch(a*a+b*b) { case 1:y=a+b; break; {case 3: case 0:y=a-b; break; case 1:y=a+b;break; } case 3:y=b-a,break; } C) switch a D) switch(a-b) { case 1 :y=a-b; break { case 2: x=a*d; break case c1:case 4:x=a+b;break; default:x=a+b; case c2:case 11:y=a-b;break; } default:y=a*b;break; } 12写出下面程序输出结果( ) {int x=1, y=0, a=0, b=0; switch(x) {case 1: switch(y) {case 0: a++; case 1: b++; } case 2: a++; b++; } printf("a=%d, b=%d\n", a, b) ; } A) a=2, b=1 B) a=1, b=1 C) a=1, b=0 D) a=2, b=2 13C语言的for语句中的表达式可以部分或全部省略,但两个( )不可省略。但当三个表达式 均省略后,因缺少判断条件,循环会无限制地进行下去,形成死循环。 A) < B) ++ C) ; D) , 14下面有关for循环的正确描述是( )。 A) for循环只能用于循环次数已经确定的情况 B) for循环是先执行循环体语句,后判定表达式 C) 在for循环中,不能用break语句跳出循环体 D) for循环体语句中,可以包含多条语句,但要用花括号括起来 15以下程序段( )。 x=-1; do { x=x*x;} while(!x) A) 是死循环 B) 循环执行2次 C) 循环执行一次 D) 有语法错误 16如下的数组中,数组array占用的内存空间是( )个字节。 char array[]={"c","h","i","n","a"}; A. 1 B. 5 C. 6 D. 不确定 17设有程序段 int k=10; while(k=0) k=k-1; 则下面描述正确的是( )。 A) while 循环执行10次 B) 循环是无限循环 C) 循环体语句一次也不执行 D) 循环体语句执行一次 18下列程序段的运行结果是( ) int n=0; while(n++<3); printf("%d",n) A. 2 B. 3 C. 4 D. 以上都不对 19设有程序段 t=0; while(printf("*")); { t++; if (t<3) break; } 下面描述正确的是( )。 A) 其中循环控制表达式与0等价 B) 其中循环控制表达式与"0"等价 C) 其中循环控制表达式是不合法的 D) 以上说法都不对 20下面程序的运行结果是( )。 #include main() { int y=10; do { y--;} while(--y); printf("%d\n",y--); } A) -1 B) 1 C) 8 D) 0 21以下程序段的输出结果是( ). main() { int i=5; for ( ;i<=15; ) { i++; if (i%4==0) printf("%d ",i); else continue;} } A. 8 12 16 B. 8 12 C. 12 16 D. 8 22以下不是无限循环的语句为( )。 A) for(y=0,x=1;x>++y;x=i++) i=x; B) for( ; ;x++=i); C) while(1){x++;} D) for(i=10; ; i--) sum+=i; 23有如下语句 int x=3; do { printf("%d\n",x-=2);} while(!(--x)); 则上面程序段( ) A. 输出的是1 B. 输出的是1和-2 C. 输出的是3和0 D. 是死循环 24以下不是无限循环的是( ) A. for(y=0,x=1;x>++y;x=i++) i=x; B. for( ; ;x++=i); C. while(1) x++; D. for(i=10; ;i--) s+=i; 25以下正确的描述是( )。 A) continue语句的作用是结束整个循环的执行 B) 只能在循环体内和switch语句内使用break语句 C) 在循环体内使用break语句或continue语句的作用相同 D) 从多层循环嵌套中退出时,只能使用goto语句 26以下程序输出结果为( ) #include "stdio.h" main() {int i,b,k=0; for(i=1;i<=5;i++) { b=i%2; while (b-->=0) k++;} printf("%d,%d\n",k,b); } A. 3,-1 B. 8,-1 C. 3,0 D. 8,-2 27以下程序段中循环体总的执行次数是( ) int i,j; for(i=7;i;i--) for(j=0;j<6;j++) {......} A) 42 B) 21 C) 13 D) 36 28以下不正确的描述是( ) A. break 语句不能用于循环语句和switch语句外的任何其他语句 B. 在switch语句中使用break语句或continue语句的作用相同 C. 在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环的执行 D. 在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环 1else语句总是和靠它最近的if匹配。 2switch语句中一定有default分支 3case后只能跟常量,不能跟变量 4break语句的作用就是结束本层循环。 5do-while语句构成的循环不能用其它语句构成的循环来代替。 6用do-while语句构成循环时,只要while后的表达式为0时就结束循环。 7for(表达式1;表达式2;表达式3)中,表达式1和表达式3不能同时都是逗号表达式。 8for循环中,如果表达式2为空,则该循环一定是死循环。 9while循环的while()后没有分号,而do-while循环的while()后一定要有一个分号。 10for(i=0,j=10;i<=j;i++,j--) k=i+j;执行完后,k的值为50。 1. 若有定义"float x=1.5;int a=1,b=3,c=2;",则正确的switch语句是() (2分) A.switch(x) { case 1.0: printf("* "); case 2.0 printf("** "); } B.switch((int)x) { case 1.0: printf("* "); case 2.0 printf("** "); } C.switch(a+b) { case 1: printf("* "); case 2+1: printf("** "); } D.switch(a+b) { case 1: printf("* ") case c: printf("** "); } 标准答案:C 2. 若有宏定义如下: #define X 5 #define Y X+1 #define Z Y*X/2 则执行以下printf语句后,输出的结果是( ) int a; a=Y; printf("%d ",Z); printf("%d",--a); (2分) A.7,6 B.12,6 C.12,5 D.7,5 标准答案:D 3. 下面的符号常量定义中,正确的是 ( ) (2分) A.#define PI 3.14; B.#include PI 3.14; C.#define PI=3.14 D.#define PI 3.14 标准答案:D 4. 以下程序的输出结果是( ) int a, b; void fun() { a=100; b=200; } main() { int a=5, b=7; fun(); printf("%d%d ", a,b); } (2分) A.100200 B.57 C.200100 D.75 标准答案:D 5. 若有以下调用语句,则不正确的fun函数的首部是( ) main() { … int a[50],n; … fun(n, &a[9]); … } (2分) 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) 标准答案:D 6. 以下程序的输出结果是( ) fun(int x, int y, int z) { z=x*x+y*y; } main() { int a=31; fun(5,2,a); printf("%d",a); } (2分) A.0 B.29 C.31 D.无定值 标准答案:C 7. 以下只有在使用时才为该类型变量分配内存的存储类说明是( ) (2分) A.auto和static B.auto和register C.register和static D.extern和register 标准答案:B 8. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( ) (2分) A.地址传递 B.单向值传递 C.由实参传给形参,再由形参传回实参 D.传递方式由用户指定 标准答案:B 9. 以下函数值的类型是( ) fun ( float x ) { float y; y= 3*x-4; return y; } (2分) A.int B.不确定 C.void D.float 标准答案:A 10. C语言规定函数的返回值的类型是由( ) (2分) A.return语句中表达式类型决定 B.调用该函数时的主调函数类型决定 C.调用该函数时系统临时决定 D.在定义该函数时所指定的函数类型决定 标准答案:D ——C语言程序设计期末试题附答案3篇 1若a、b均为int型变量,且a=100,则以下的for循环是死循环. for (b=100;a!=b;++a,b++) printf("----\n"); 执行语句:for(i=1;i++<4;++i);后;变量i的值是5。 2以下程序的运行结果是【 】 main() {int x,y,z; x=1;y=2;z=3; x=y--<=x||x+y!=z; printf("%d,%d",x,y); } 3以下程序的运行结果是【 】 main() {int x,y,z; x=1;y=1;z=0; x=x||y&&z; printf("%d,%d",x,x&&!y||z); } 4以下程序的运行结果是【 】 main() {int a,b,c; int s,w=0,t; a=-1;b=3;c=3; if(c>0)s=a+b; if(a<=0) {if(b>0) if(c<=0)w=a-b; } else if(c>0)w=a-b; else t=c; printf("%d,%d,%d\n",s,w,t); } 5阅读下面程序: main() { int s, t, a, b; scanf("%d%d",&a, &b); s=1; t=1; if(a>0) s=s+1; if(a>b) t=s+t; else if (a==b) t=5; else t=2*s; printf("s=%d, t=%d", s, t); } 6为了使输出结果t=4, 输入量a和b应满足的条件是【 】 7下面程序的功能是在输入的一批整数中求出最大者,输入0结束循环。 #include { int a,max=0; scanf("%d",&a) while(【 】){ if (max scanf("%d",&a); } printf("%d",max); } 8执行下面的程序段后,k值是【 】。 k=1; n=263; do { k*=n%10; n/=10; } while(n); 9等差数列的第一项a=2,公差d=3,下面程序的功能是在前n项和中,输出能被4整除的所有的和。请填空。 #include main() { int a,d,sum; a=2;d=3;sum=0; do { sum+=a; a+=d; if (【 】) printf("%d\n",sum); } while(sum<200); } 10鸡兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,请填空。 for(x=1;x<=29;x++) { y=30-x; if (【 】) printf("%d,%d\n",x,y); } 11写出下面程序的运算结果【 】。 # include main ( ) { int a=14, b=63; while (a!=b) {while (a>b) a-=b; while (a } printf ("%d\n",a); } 12下列程序的输出为【 】。 #include main() { int i,j,x=0; for(i=0;i<3;i++) { if(i%3==2) break; x++; for(j=0;j<4;j++) { if(j%2) break; x++; } x++; } printf("x=%d\n",x); } ——C语言程序设计试题及答案3篇 1[单选题] 若有语句:int a[3][4],(。P)[4];P=a;,则以下选项中叙述错误的是()。 A.系统将开辟一个名为P的二维数组,“o][o]中的值即为a[o][o]中的值 B.P+1代表a[1][0]的地址 C.P中将存放a数组的首地址 D.P+2代表a数组最后一行的首地址 参考答案:A 参考解析:(+P)[4]定义了一个数组指针。P可以指向类似于arry[][4]的数组,题设中,P不是一个二维数组,只是可以指向这类二维数组,因此选项A错误。P+1代表了第一行第一个元素的地址,P=a指向数组a的首地址,则B、C选项正确,同理可知选项D也正确。故答案为A选项。 2[单选题] 以下叙述中正确的是() A.在算法设计时,可以把复杂任务分解成一些简单的子任务 B.在C语言程序设计中,所有函数必须保存在一个源文件中 C.只要包含了三种基本结构的算法就是结构化程序 D.结构化程序必须包含所有的三种基本结构.缺一不可 参考答案:A 参考解析:C语言的程序中,函数不一定都放在同一个源文件中,可以分别放在不同源文件中,通过#inClude命令来引用,所以B错误。结构化程序可以包含三种基本结构中的一种或几种,所以C,D错误。 3[单选题] 有三个关系R、S和T如下: 则由关系R和S得到关系T的操作是( )。 A.自然连接 B.交 C.除 D.并 参考答案:C 参考解析:如果S=T/R,则s称为T除以R的商。在除运算中s的域由T中那些不出现在R中的域所组成,对于s中的任一有序组,由它与关系R中每个有序组所构成的有序组均出现在关系T中。所以本题选择C2017年计算机二级C语言练习题及答案2017年计算机二级C语言练习题及答案。 4[单选题] 以下叙述错误的是( )。 A.一个算法所包含的操作步骤应该是有限的 B.任何能通过编译和运行的算法都一定能得到所期望的结果 C.算法中每一条指令必须有确切的含义 D.算法可以用各种描述方法来进行描述 参考答案:B 参考解析:算法的特点:零个或多个输入,至少一个输出,可行性(能编程实现),有穷性(有限步出结果),确定性(描述不能有歧义)。可知选项A,c,D正确。c语言中。通过编译,可以运行的程序,不一定符合题目的本意,因此即使可以运行得到结果,也不一定和预期的结果一样,否则就不需要调试和修改程序了,故B选项错误。答案为B选项。 5[单选题] 设有定义: int a=1,b=2,C=3; 以下语句中执行效果与其他三个不同的是( )。 A.if(a>B.C=a,a=b,b=C; B.if(a>B.{C=a,a=b,b=C;} C.if(a>B.C=a;a=b;b=c; D.if(a>B.{C=a;a=b;b=c;} 参考答案:C 参考解析:由于a小于b,所以所有选项中的条件都为假,c选项中实际执行了a=b;b=c;两个操作。而A、B、D选项由于条件不成立,所以什么也没有做,所以选择c选项。 6[单选题] 以下叙述中正确的是 A.两个字符串可以用关系运算符进行大小比较 B.函数调用strlen(s);会返回字符串S实际占用内存的大小(以字节为单位) C.C语言本身没有提供对字符串进行整体操作的运算符 D.当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间的和 参考答案:C 参考解析:本题考查字符串处理函数strien、strcat、strcmp。B选项中strlen返回的是字符串s实际占用内存大小加上结尾符,A选项中不能用关系运算符进行大小比较,可以使用strcmp。D选项当使用连接函数strcat时,内存空间会减少一个字符位置。 7[单选题] 一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是( )。 A.一对一 B.一对多 C.多对多 D.多对一 参考答案:C 参考解析:因为一个人可以操作多个计算机,而一台计算机又可以被多个人使用,所以两个实体之间是多对多的关系。 8[单选题] 对于while(!E)s;,若要执行循环体s,则E的取值应为: A.E等于1 B.E不等于0 C.E不等于1 D.E等于0 参考答案:D 参考解析:while语句的一般形式为:while(表达式)语句;其中表达式是循环条件,语句为循环体。while语句的语义是:计算表达式的值,当值为真(非0)时,执行循环体语句。该题中如要执行语句s,则!E应为真,因此E应等于0,D选项正确。 9[单选题] 在软件设计中不使用的工具是( )。 A.系统结构图 B.PAD图 C.数据流图(DFD图) D.程序流程图 参考答案:C 参考解析:系统结构图是对软件系统结构的总体设计的图形显示2017年计算机二级C语言练习题及答案计算机等级。在需求分析阶段,已经从系统开发的角度出发,把系统按功能逐次分割成层次结构,是在概要设计阶段用到的 PAD图是在详细设计阶段用到的。程序流程图是对程序流程的图形表示,在详细设计过程中用到。数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型,是在可行性研究阶段用到的而非软件设计时用到,所以选择C。 10[单选题] 若有定义语句:char a="\82";则变量a() A.说明不合法 B.包含1个字符 C.包含2个字符 D.包含3个字符 参考答案:B 参考解析:char a="\82",定义字符量a,char型变量值为1个字节长度,并从右侧开始运算,所以a的值应为"2"。因此B选项正确。 ——C语言程序设计期末复习试题及答案3篇 1以下符号中不能用作用户标识符的符号是( )。 A)_256 B)void C)scanf D)Struct 2下面四个选项中,均是合法浮点数的选项是( )。 A) +1e+1 B) -.60 C) 123e D) -e3 5e-9.4 12e-4 1.2e-.4 .8e-4 03e2 -8e5 +2e-1 5.e-0 3下面四个选项中,均是正确的八进制或十六进制数的选项是( )。 A) -1a B)0abc C)0010 D)0a12 0x8f -017 0x11 -0x123 -011 0xc 0xf1 -0xa 4以下选项中,为C语言合法的关键字是( )。 A)swicth B)cher C)Case D)default 5C语言提供的合法的数据类型关键字是( )。 A)Double B)short C)integer D)Char 6下列标识符组中,合法的用户标识符为( )。 A)b-b与abc B)*与float C)hiy与 D) isw与INT 7 属于合法的C 语言长整型常量的是( )。 A)5876273 B)0L C)2E10 D)(Long)5876273若int类型数据占两个字节,下8列程序的输出结果是( )。 main() { int k=-1; printf("%d,%un",k,k); } A)-1,-1 B)-1,32767 C)-1,32768 D)-1,65535 9设已定义x为double类型变量 x=213.82631; printf("%-6.2e\n",x); 则以上语句( )。 A)输出格式描述符的域宽不够,不能输出 B)输出为21.38e+01 C)输出为2.14e+02 D)输出为-2.14e2 10执行x=5>1+2&&2||2*4<4 - !0后,X的值为( )。 A) -1 B) 0 C) +1 D) 5 11设ch是字符变量,其值为A,且有下面的表达式ch=!(ch>="A"&&ch<="z")?ch:(ch+32)则表达式的值是 ( ) A) A B) a C) 2 D) z 12设ch是char型变量,其值为Z,且有下面的表达式,其值为( )。 ch=(ch>="A"&&ch<="Z")?(ch+32):ch A) A B) a C) Z D) z 13以下的`变量定义中,合法的是( )。 A)float 3_four = 3.4 ; B)int _abc_= 2 ; C)double a = 1 + 4e2.0 D)short do =15; 14若有int k = 11;则表达式(k++ * 1/3)的值是( )。 A)0 B)3 C)11 D)12 15逻辑运算符两侧运算对象的数据类型是 ( )。 A) 只是0或1 B)只能是0或非0正数 C) 只能是整型或字符型数据 D) 可以是任何类型数据 16下列表达式的值,那一个等于0 ( )。 A) 5%6 B) 5/6 C) 5/6.0 D) 5 - 6 17以下正确的叙述是( )。 A)在C程序中,每行只能写一条语句 B)若 a 是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数 C)在C程序中,无论是整数还是实数,都能被准确无误地表示 D)在C程序中,%是只能用于整数运算的运算符 18以下不正确的语句(设有int p,q)是( )。 A)p*=3; B)p/=q; C)p+=3; D)p&&=q; 19如果a=1,b=2,c=3,d=4,则条件表达式a A)1 B)2 C)3 D)4 20设Int n=2;则++n+1= =4的结果是( )。 A)true B)false C)1 D)0 ——C语言程序设计模拟试题及答案3篇 一、填空题 1、C语言中基本的数据类型有:______、______ 、______ . 2、C语言中普通整型变量的类型说明符为______,在内存中占______字节,有符号普通整型的数据范围是______ . 3、整数-35在机内的补码表示为______. 4、执行下列语句int a=8; a+=a-=a*a;后,a的值是______. 5、有如下语句:char A[ ]={“I am a student”};该字符串的长度是______,A[3]=______. 6、符号“a”和‘a’的区别是______. 7、所谓“指针”就是______.“&”运算符的作用是______.“*”运算符的作用是______. 8、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是_a=1,b=3,c=2__. 一、填空题 (1)整型、实型、字符型。 (2)int,2,-32768~ +32767 (3)1111111111011101 (4)- 112 (5)14,‘m’ (6)“a”是字符串常量,而‘a’是字符常量。 (7)存放地址值的变量或常量,或者答地址。 (8)取运算对象的.地址。取指针变量所指的内容。a=1,b=3,c=2 二、选择题 1、设整型变量a为5,使b不为2的表达式是( C )。 A. b=a/2 B. b=6-(——a) C. b=a%2 D. b=a>3?2:1 2、为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与( C )组成配对关系。 A. 缩排位置相同的if B. 在其之前未配对的if C. 在其之前未配对的最近的if D.同一行上的if 3、以下程序的输出结果是( D )。 int x=10,y=10; printf(“%d %d\n”,x——,——y); A. 10 10 B. 9 9 C. 9 10 D. 10 9 4、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( B )。 A.P+i*2 B. P+(i-1)*2 C. P+(i-1) D. P+i 5、选出下列标识符中不是合法的标识符的是( D )。 A. hot_do B. cat1 C. _pri D. 2ab 6、以下程序的输出结果是( B )。 int a=5; float x=3.14; a*=x*(‘E’ - ‘A’); printf(“%f\n”,(float)a); A. 62.000000 B. 62.800000 C. 63.000000 D. 62 7、设有说明double(*p1)[N];其中标识符p1是( C )。 A. N个指向double型变量的指针。 B. 指向N个double型变量的函数指针。 C. 一个指向由N个double型元素组成的一维数组的指针。 D.具有N个指针元素的一维指针数组,每个元素都只能指向double型量。 8、在C程序中有如下语句:char *func(int x,int y);它是( C )。 A. 对函数func的定义。 B. 对函数func的调用。 C.对函数func的原型说明。 D. 不合法的。 9、以下程序的输出结果是( D )。 char str[15]=“hello!”; printf(“%d\n”,strlen(str)); A. 15 B. 14 C. 7 D. 6 10、分析以下程序的输出结果是( A )。 main() {int a=5,b=-1,c; c=adds(a,b); printf(“%d”,c); c=adds(a,b); printf(“%d\n”,c); } int adds(int x,int y) {static int m=0,n=3; n*=++m; m=n%x+y++; return(m); } A. 2,3 B. 2,2 C. 3,2 D. 2,4 11、下列描述中不正确的是( C )。 A. 字符型数组中可能存放字符串。 B. 可以对字符型数组进行整体输入、输出。 C. 可以对整型数组进行整体输入、输出。 D. 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。 12、以下程序的输出结果是( A )。 #define f(x) x*x main() {int a=6,b=2,c; c=f(a)/f(b); printf(“%d\n”,c); } A. 9 B. 6 C. 36 D. 18 13、设有如下定义: int x=10,y=3,z; 则语句printf(“%d\n”,z=(x%y,x/y));的输出结果是( D )。 A. 1 B. 0 C. 4 D. 3 14、定义如下变量和数组:int i;int x[3][3]={1,2,3,4,5,6,7,8,9}; 则语句for(i=0;i<3;i++) printf(“%d ”,x[i][2-i]);的输出结果是( C )。 A. 1 5 9 B. 1 4 7 C. 3 5 7 D. 3 6 9 15、以下对二维数组a进行正确初始化的是( B ) A. int a[2][3]={{1,2},{3,4},{5,6}}; B. int a[ ][3]={1,2,3,4,5,6}; C. int a[2][ ]={1,2,3,4,5,6}; D. int a[2][ ]={{1,2},{3,4}}; 16、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是( C )。 int x; scanf(“%d”,&x); if(x++>5) printf(“%d”,x); else printf(“%d\n”,x - -); A. 7和5 B. 6和3 C. 7和4 D. 6和4 17、设有如下定义: char *aa[2]={“abcd”,“ABCD”};则以下说法中正确的是( D )。 A)aa数组成元素的值分别是“abcd”和ABCD“ B)aa是指针变量,它指向含有两个数组元素的字符型一维数组 C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D)aa数组的两个元素中各自存放了字符‘a’和‘A’的地址 ?18、下列程序的输出结果是( D )。 char *p1=“abcd”, *p2=“ABCD”, str[50]=“xyz”; strcpy(str+2,strcat(p1+2,p2+1)); printf(“%s”,str); A. xyabcAB B. abcABz C. ABabcz D. xycdBCD 19、下列程序的输出结果是( C )。 int a[5]={2,4,6,8,10},*P,* *k; p=a; k=&p; printf(“%d”,*(p++)); printf(“%d\n”,* *k); A. 4 4 B. 2 2 C. 2 4 D. 4 6 20、不能把字符串:Hello!赋给数组b的语句是( B )。 A. char b[10]={‘H’,‘e’,‘l’,‘l’,‘o’,‘!’}; B. char b[10]; b=“Hello!”; C. char b[10]; strcpy(b,“Hello!”); D. char b[10]=“Hello!”; ——C语言程序设计(陈明晰著)课后答案下载3篇 点击此处下载☞☞☞C语言程序设计(陈明晰著)课后答案☜☜☜ ——c语言程序设计的实验报告3篇 一、实验目的: 1、掌握C语言的数据类型和变量的声明。 2、掌握不同类型数据之间赋值的规律。 3、掌握C语言的运算符和表达式的使用。 4、熟悉C程序的编辑、编译、连接和运行的过程。 二、实验内容: ①输人程序: #includevoid main{ int a, b; float d,e; char c1,c2; double f, g; long m, n; unsigned int p,q; a=61;b=62; c1="a";c2="b"; d=3.56;e=-6.87; f=3157.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000; printf("a=%d,b=%d c1=%c,c2=%c d=%6.2f,e=%6.2f ",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.6f m=%ld,n=%ld p=%u,q=%u ",f,g,m,n,p,q); } ②运行此程序并分析结果 按习题4. 8要求编写程序 题目为: 设圆半径r=l. 5,圆柱*=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。 用scanf输人数据,输出计算结果口输出时要有文字说明,取小数点后两位数字。 程序: 三、实验步骤: ①输人程序: #include void main{ int a, b; float d,e; char c1,c2; double f, g; long m, n; unsigned int p,q; a=61;b=62; c1="a";c2="b"; d=3.56;e=-6.87; f=3157.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000; printf("a=%d,b=%d c1=%c,c2=%c d=%6.2f,e=%6.2f ",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.6f m=%ld,n=%ld p=%u,q=%u ",f,g,m,n,p,q); } ②运行此程序并分析结果。 预计结果: a=61,b=62 c1=a,c2=b d=``3.56,e=`-6.87 f=````3157.890121,g=```````0.123456 m=50000,n=-60000 p=32768,q=40000(`代表空格) 结果: g的输出看来是四舍五入了。 ③在此基础上,将程序第9~14行改为: a=61;b=62; c1=a;c2=b; f=3157.890121;g=0.123456789; d=f;e=g; p=a=m=50000;q=b=n=-60000; 运行程序,分析结果。 p=a=m=50000;q=b=n=-60000;这两条语句将p、a、m的值和q、b、n的值都重新赋了相应的新值。除m、n外都是整型、无符号整型或字符型,因此输出会按数据类型强制截取,因此得到的值会不尽相同,但可以从理论上做出推测,但由于编译系统的不同,真正得到的结果也可能不尽相同。 ④改用scanf函数输人数据而不用赋值语句,scanf函数如下: scanf("%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%u",&a,&b,&c1,&c2,&d,&e,&f,&g,&m,&n,%p,%q); 输入的数据如下: 分析运行结果。 (说明:lf和ld格式符分别用于输人double型和long型数据) ⑤在④的基础上将printf语句改为: printf("a=%d,b=%d c1=%c,c2=%c d=%15.6f,e=%15.6f ",a,b,c1,c2,d,e); printf("f=%f,g=%f m=%ld,n=%ld p=%u,q=%u ",f,g,m,n,p,q); 运行程序: ⑥将p、q改用%o格式符输出。 ⑦将scanf函数中的%1f和%ld改为%f和%d,运行程序并观察分析结果。 出现错误,提示为:浮点错误:超出范围。程序异常中止。 (2)按习题4. 8要求编写程序 题目为: 设圆半径r=l. 5,圆柱*=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。 用scanf输人数据,输出计算结果口输出时要有文字说明,取小数点后两位数字。 程序: #include void main { float h,r,s,sq,vq,vz; float pi=3.1415926; printf("Please input the circinal r, and the cylindrical h:"); scanf("%f,%f",&r,&h); l=2xpixr; sq=4xpixrxr; vq=4.0/3.0xpixrxrxr; vz=pixrxrxh; printf("circinal girth is: l=%6.2f ",l); printf("circinal area is: s=%6.2f ",s); printf("sphere surface area is: sq=%6.2f ",sq); printf("sphere cubage is: vq=%6.2f ",vq); printf("cylindrical cubage is: vz=%6.2f ",vz); } 编程序,用getchar函数读人两个字符给c1 ,c2,然后分别用putchar函数和printf输出这两个字符。 上机运行程序,比较用printf和putchar函数输出字符的特点。 程序如下: #includevoid main{ char c1,c2; printf("Please input tow letters: "); c1=get); c2=get); printf("Putchar is: "); putc1); putc2); printf(" "); printf("Printf is: "); printf("%c %c ",c1,c2); } 可见有putchar输出的结果是一个字符一个字符顺序输出的。每个putchar函数只能输出一个字符,且只能输出字符,而printf可以输出多个数据,且为任意类 四、实验心得(体会): 通过本次C语言上机实验,我对顺序结构程序设计有了一定的了解。通过几个例题,我对顺序结构中scanf和printf语句的基本实用情况有了一定的理解。我相信这些都为后来的编程打下基础。对C语言学习,我会更加努力。 推荐访问: 期末
试题
答案
C语言程序设计期末试题及答案3篇
c语言程序设计期末试题及答案1
c语言程序设计期末试题及答案10题
C语言程序设计期末试题及答案2
C语言程序设计期末试题及答案3篇扩展阅读
C语言程序设计期末试题及答案3篇(扩展1)
C语言程序设计期末试题附答案1
C语言程序设计期末试题及答案3篇(扩展2)
C语言程序设计试题及答案1
C语言程序设计期末试题及答案3篇(扩展3)
C语言程序设计期末复习试题及答案1
C语言程序设计期末试题及答案3篇(扩展4)
C语言程序设计模拟试题及答案1
C语言程序设计期末试题及答案3篇(扩展5)
C语言程序设计(陈明晰著)课后答案下载1
C语言程序设计期末试题及答案3篇(扩展6)
c语言程序设计的实验报告1