程序设计作业_第1页
程序设计作业_第2页
程序设计作业_第3页
程序设计作业_第4页
程序设计作业_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、第1章 作业答案:一,59,14.4,28.e二1小题,592,15一、将数89、20.25、40.875用十六进制表示二、填空1.在C语言中,数值常量0x3b的十进制值是 。2.字母f的ASCII码为十进制数_。第三章作业一、选择题:1、下列变量名中, B 是非法的。 A) Tom B) 3n C) little_boy D) c102、若有以下类型说明char a;int b;float c;double d;则表达式a*b+d-c的结果类型是( A )A)floatB)charC)int D)double3、若x为整型,则逗号表达式(x=4*5,x*5),x+25的结果及x的值分别是(C

2、)正确答案是100,45A)4520B)12520C)12545D)1001004、假设所有变量均为整型,则表达式(a=3,b=2,b+,a+b)的值是 C 。 A) 5 B) 8 C) 6 D)75、已知c2为字符型,则执行语句c2=E+8-A后,c2的值为 C 。 A) 12 B) 11 C)不确定的值 D) 106、设a为double变量,b为int型变量,c为字符型变量,则a+b+c为( C )型 A) int B) float C) double D) char7、语言中不可用作标识符的字符有( C ) A 下划线 B %C 数字 D 字母 8、下面四个选项中,均是合法整型常量的是(

3、D)A)160B)- 0xcdfC)- 01D)0x- 0xffff01a 0668 2e59、设a为字符变量,b为int型变量,c为double型变量,则a*b+c为( C )型 A. int B. float C. double D. char10.  若a是int型变量,则表达式(a=4*5,a*2),a+4的值为( C )A. 20        B.22          C. 24   

4、;      D. 44   第四章作业一、选择题1、若x为int型变量,则执行以下语句后x= C 。x=5;x-=x-=x+x;A. -10 B. -5 C.0 D.102、在printf()函数的格式说明符中,字符型数的输出格式说明符是 D 。A. %s B. %f C. %ld D. %c3、 已知ch是字符型变量,下面不正确的赋值语句是 C 。A) ch=7+9; B) ch=0; C) ch=x+y; D) ch=5+9;4、要使用putchar()函数必须在程序前加语句 A 。A. #include &

5、lt;stdio.h> B. include <stdio.h>C. include "stdio.h"D. #include 'stdio.h'5、在scanf()函数的格式说明符中,长整型数的输入格式符是 B 。 A. %lf B. %ld C. %f D. %x二、判断题1、 C语言标准输入操作中,gets()函数一次只可以读取一个字符。(Flase )2、 C语言标准输出操作中,putchar()函数可以输出显示一个字符串。(Flase )3、 "a"与'a'是不同的; ( True )三、分析下

6、列程序的输出结果。1.#include <stdio.h>void main()char c=m;printf(“%c,%dn”,c,c);printf(“%d,%cn”,c,c);分别是,m,10999,c2. #include <stdio.h>void main()int a;float d;printf(“Enter a and d: ”);scanf(“%d%f”,&a,&d);printf(“%5d,%8.2fn”,a,d);Enter a and d: 70 80.158 输入结果,Enter a and d:70 ,80.16第五章作业一

7、、 选择题。1、逻辑运算符两侧的运算对象的数据(D)A) 只能是0和1B) 只能是0或非0正数C) 只能是整型或字符型数据D) 可以是任何类型的数据2、判断char型变量ch是否为大写字母的正确表达式是 C 。A. A<=ch<=Z B. (ch>=A) && (ch<=Z) C. (ch>=A)& (ch<=Z) D. (A<=ch) AND (Z>=ch)3、执行以下程序段后, b= A 。int a=5,b=6,c=1,x=2,y=3,z=4;c=(a=c>x)&&(b=y>z);A. 6

8、 B. 0 C. 1 D.44、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。 if (x>y) z=x;x=y;y=z;A. x=20,y=30,z=30 B. x=10,y=20,z=30C. x=20,y=30,z=10 D. x=20,y=30,z=205、设a=3,b=4,c=5,则表达式 !(a+b)+c-1&&b+c/2 的值为( B )A. 0           B. 1  

9、0;       C. 4          D. 6.5 二、 填空题。1、以下程序main() int x1=3,x2=0,x3=0; if(x1=x2+x3)printf(“*”); elseprintf(“#”);输出 # 。2、 10 != 2 + 8 | 5 < 4 && 3 > 9/4的结果是 FALSE(0) 。3、设x为int型变量,表示某一年份,请写出描述“x是闰年”的表达式 x

10、%4=0&&x%100!=0)|x%400=0 。4、整型变量 y 能被 3 整除但不能被 4 整除 。三、 程序填空题。请在【】中填上正确内容。1、该程序实现输出x,y,z三个数中的最大者。main()int x=4,y=6,z=7; int 【1】;if (【2】) m=x;else m=y;if (【3】) n=m;else n=z;printf(“n=%d”,n); 答案:m x>y n>m2、输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其他字符不变;main() char ch; scanf(“%c”,

11、&ch); if (【1】) ch=ch+32;else if (ch>=a && ch<=z ) 【2】;printf(“%c”,ch); 答案: (ch>=A )&&( ch<=Z) ch=ch-32 第六章作业一选择题。1、设有程序段int x=10;while(x=0) x=x-1;则下面描述正确的是(C)。A)while循环执行10次B)循环是无限循环C)循环体一次也不执行D)循环体只执行一次2、对for(表达式1; ;表达式3)可理解为 C 。 A. for(表达式1;0 ;表达式3) B. for(表达式1;表达式1

12、;表达式3)C. for(表达式1;1 ;表达式3) D. for(表达式1;表达式3;表达式3)3、语句while(!y);中表达式!y等价于(A)A)y= =0B)y!=1C)y!=0D)y= =14.下述关于break语句的描述中,( C )是不正确的。A. break语句可用于循环体内,它将退出该重循环;B. break语句可用于开关语句中,它将退出开关语句;C. break语句可用于if体内,它将退出if语句;D. break语句在一个循环体内可以出现多次;5.执行以下程序时,从键盘输入2473(表示回车),则下面的程序的运行结果是( C )#include <stdio.h&

13、gt;main( )  int c ;while(c=getchar( )!= n)  switch(c-'2')  case 0:     case 1:  putchar(c+4);    case 2:  putchar(c+4);break;    case 3:  putchar(c+3);    default: putchar(c+2);break; A. 668966 

14、60;     B. 6688766       C. 668977      D. 66778777二判断题1、While循环语句的循环体至少执行一次。( false )2、任何循环语句的循环体至少都可执行一次。( false )3、break语句可以出现在各种不同循环语句的循环体中。( true)4、for循环是只有可以确定的循环次数时才可使用,否则不能用for循环。(false )5、条件语句是可以实现多路分支的。(true )三

15、填空题1.已知 for(j=1,s=0;j<=5;j+=2) s=s+j; 执行循环后,s的值是 9 _ 。2. 执行以下程序段后,y= 8 _ ,x= 2 _ 。int x=1,y=10;do y-=x; x+;while(y-<0);四程序填空题1下面程序段的功能是将字符串s中所有的字符c删除,请填空.main() char s80; int I,j; gets(a); for(i=0,j=0;si!=0;i+) if(si!=c) (【1】) ; sj=0; puts(s);答案:else第七章作业一、选择题1、以下能对二维数组正确初始化的是(D)A) int y2 =1,0

16、,1,5,2,3B) int y 3= 1,0,1,5,2,3C) int y2 4= 1,0,1,5,2,3D) int y 3= 1,0,1,0, ,5,22、若二维数组y有m列,则在yij前的元素个数为(B)A j*m+IB i*m+jC i*m+j-1D i*m+j+13、已知 int w24=7,15,8,9,20,25,14,17;则 w01的值是 C(15) A 8 B.9 C. 15 D. 254、若有说明 int a3=1,2,3,4,5,6,7, 8;则a数组第一维的大小是 A 。A. 2 B无确定值 C. 3 D. 45、若有说明 int a4=1, 2, 3, 4, 5

17、, ;则a数组第一维的大小是 D 。A. 2 B无确定值 C. 3 D. 语法错误6、下面程序的运行结果是 。char c6=a,b,c, 0,c,0; 答案是abc (B)printf(“%s”,c);A. ab B. abc C. ab c D. ab7、判断字符串a和b是否相等,应当使用 D 。 A. if (a= =b) B. if (a=b) C. if (strcpy(a,b) D. if (strcmp(a,b)8、用数组名作为实参,传给形参的是( D )A.数组第0个元素的值 B.数组全部元素的值C.数组元素个数 D.数组首地址9、以下能正确读入字符串的是(D)A.char *

18、p;scanf(“%s”,p);B.char str10; scanf(“%s”,&str);C.char str10,*p;p=str; scanf(“%s”,p);D.char str10,*p=str; scanf(“%s”,p1);10、已知 char c6="ABCDE", d6;要将c复制到d中,正确的做法是( D )A. d=c; B. c=d; C. strcmp(c,d);D. strcpy(d,c);二、分析下面程序的结果。main ( ) int i,j,s1=0,s2=0 ,a33= 4,9,6,5,3,1,2,8,7; printf(&qu

19、ot;a:n"); for(i=0; i<3; i+) for(j=0;j<3;j+) printf("%3d",aij); printf("n"); printf("n"); for(i=0; i<3; i+) s1=s1+aii; s2+=ai2-i; printf("s1=%d, s2=%dn",s1,s2); 答案:a: 4 9 6 5 3 1 2 8 7S1=14,s2=11 第八章作业一、选择题1. 在C语言中,当函数调用时( D )。A. 实参和形参各占一个独立的存储单元B

20、. 实参和形参共用存储单元C. 可以由用户指定实参和形参是否共用存储单元D. 由系统自动确定实参和形参是否共用存储单元2. 以下函数调用语句中实参的个数为( A )。exce(v1,v2),(v3,v4,v5),v6);A. 3B. 4C. 5D. 63. 如果在一个函数的复合语句中定义了一个变量,则该变量( A )。A. 只在该符合语句中有效,在该符合语句外无效B. 在该函数中任何位置都有效C. 在本程序的原文件范围内均有效D. 此定义方法错误,其变量为非法变量4. C语言规定,函数返回值的类型是由( D )。A. return语句中的表达式类型所决定B. 调用该函数时的主调函数类型所决定C

21、. 调用该函数时系统临时决定D. 在定义该函数时所指定的函数类型决定5. 在C语言程序中,以下描述正确的是( D )。A. 函数的定义可以嵌套,但函数的调用不可以嵌套B. 函数的定义不可以嵌套,但函数的调用可以嵌套C. 函数的定义和函数的调用均不可以嵌套D. 函数的定义和函数的调用均可以嵌套二、写出程序的输出结果1.void main(void) int a=1,k; for(k=0;k<3;k+) printf("%4d",f1(a); int f1(int x) static int z=3,y=0; y+; z+; return(x+y+z); 答案:*6*8*

22、10第十章作业一、 选择题。1.若有以下定义和语句,且0i<10则对数组元素的错误引用是( B )。int a10=1,2,3,4,5,6,7,8,9,10,*p,i;p=a;A. *(a+i) B. ap-a C. p+i D. *(&ai)2.若有定义:int a34; ,( D )不能表示数组元素a11。A. *(a1+1) B. *(&a11) C. (*(a+1) ) 1 D. *(a+5)3.对如下定义,以下说法中正确的是( D )。char *a2= "abcd","ABCD"A.数组a的元素值分别为"abc

23、d"和"ABCD"B.a是指针变量,它指向含有两个数组元素的字符型数组C.数组a的两个元素分别存放的是含有4个字符的一维数组的首地址D.数组a的两个元素中各自存放了字符a、A的地址4.char *s="tNameAddressn"指针s所指字符串的长度为:( D )。A. 说明不合法 B. 19 C. 18 D. 155.分析下面函数,以下说法正确的是( D )。swap(int *p1,int *p2) int *p; *p=*p1; *p1=*p2; *p2=*p;A. 交换*p1和*p2的值 B. 正确,但无法改变*p1和*p2的值C. 交换*p1和*p2的地址 D. 可能造成系统故障,因为使用了空指针6.设有说明int (*ptr)M; 其中ptr是( C )

温馨提示

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

最新文档

评论

0/150

提交评论