C语言培训班第一次作业(1)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言培训班第一次作业(1)
1、以下叙述中正确的是()
(A)、用户所定义的标识符不允许使用关键字。
(B)、分号是C语句之间的分隔符,不是语句的一部分。
(C)、花括号“{}”只能作为函数体的定界符。
(D)、构成C程序的基本单位是函数,所有函数都可以由用户命名。
1、以下叙述中正确的是()
(A)、可以把printf和int定义为用户标识符。
(B)、可以把printf定义为用户标识符,但是不能把int定义为用户标识符。
(C)、可以把int定义为用户标识符,但不能把printf定义为用户标识符。
(D)、printf和int都不能定义为用户标识符
2、一下不能定义为用户标识符的是()
(A)Main (B)_0 (C)long(D)_int
3、以下不合法的标识符是()
(A)j2_KEY (B)_1_2_3 (C)Double (D)4D
4、以下符合C语言语法的实型常量是()
(A).5E-5 (B)3.3E(C)1.2E0.5 (D)E15
5、表达式3.6-5/2+1.2+5%2的值是()
(A)4.3 (B)3.8 (C)3.3 (D)4.8
6、下列定义变量的语句中错误的是()
(A)int _int; (B)long For;
(C)short US$; (D)double int_;
7、若变量x、y已经正确定义并赋值,以下符合C语言语法的表达式是()
(A)double(x)/10 (B)x=x+10=x+y
(C)x+1=y(D)++x , y――
8、有以下程序
main()
{ int m=12,n=34;
printf(“%d%d”,++m,n++);
printf(“%d%d\n”,--n,--m);
}
程序运行后的输出结果是()
(A)13343412 (B)13363413 (C)13343513 (D)13343413
10、以下选项中,值为1的表达式是()
(A)1-’0’(B)1-’\0’(C)’1’-0 (D)’\0’-‘0’11、设char型变量x中的值为10100111,则表达式(2+x)^(-3)的值是()
(A)10101001 (B)10101000 (C)01010101 (D)11111101
12、以下合法的字符型常量是()
(A)’x1a’(B)’\018’(C)’65’(D)’\\’
1、下列选项中不能作为用户标识符的是()
A)1 B)_ C)a D)_1a
2、下列选项中合法的标识符是()
A)Long B)short C)1a D)Mr.peng
3、int类型的变量占的字节数为()
A)4 B)3 C)2 D)1
4、以下不合法的十六进制整数为()
A)oxff B)0Xff C)0x1a D)0xabcd
5、以下在C语言中可以作为合法常量的是()
A)-80. B)-080 C)-8e1.0 D)-80.0e
6、以下不合法的数值常量是()
A)8.0e1.0 B)1E1 C)0xabcd D)011
7、以下说法错误的是()
A)+、-、*、/、%号是算数运算符,可以用于整型和实型运算B)i++是赋值语句
C)分号是C语言结束的标志
D)除逗号运算符以外,赋值运算符的优先级最低。
8、以下非法的赋值语句是()
A)++(i+1); B)n=(i=2,++i); C)x=y=0; D)i++;
9、关于++、――的运算正确的是()
A)运算的对象可以是char型变量、int型变量和float型变量
B)运算的对象可以是int型变量,但是不能是double和float型变量
C)运算的对象可以是char型变量和int型变量,但是不能是float 型变量 D)运算的对象可以是任何变量和常量。
10、设有定义:int k=0;以下选项的四个表达式和其他三个值不相同的是() A)k++ B)k+=1 C)++k D)k+1
11、设有定义语句:char c1=92 ,c2=93; 则以下表达式值为0的是()
A)c1^c2 B)c1&c2 C)~c2 D)c1|c2
12、以下合法的字符常量是()
A)’\n’ B)’AA’ C)’\cc’ D)’65’
1、设有如下程序段:
int x=2002,y=2003;
printf(“%d\n”,(x,y)); /*本题考察printf和第一次课的逗号表达式*/ 则以下叙述中正确的是()
A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出。
B)运行时将产生错误信息
C)输出值为2002
D)输出值为2003
2、若有以下程序段(n所赋的值是八进制数)
int m=32767,n=032767;
printf(“%d,%o\n”,m,n); /*本题考察printf和八进制数的输出*/
执行后输出的结果是()
A)32767,32767 B)32767
C) 32767,77777 D)077777
3、若有以下程序段
int m=0xabc , n=0xabc;
m-=n;
printf(“%X\n”,m); /*本题考察printf和十六进制数输出*/
执行后输出的结果是()
A)0X0 B)0x0 C)0 D)0XABC
4、有以下程序
main()
{ int i=10,j=1; /*本题考察printf和自加自减的输出*/
printf(“%d,%d\n”,i--,++j);
}
执行后程序输出的结果是()
A)9,2 B)10,2 C)9,1 D)10,1
5、有以下程序
main()
{ int m=0256,n=256;
printf(“%o %o\n”,m,n); /*本题考察printf和八进制输出与转换*/ }
程序运行后的输出结果是()
A)256 0400 B)0256 256 C)256 400 D)400 400
6、有以下程序
main( )
{ int a=666,b=888;
printf(“%d\n”,a,b); /* printf输出格式(打印资料上有知识点)*/ }
程序运行后的输出结果是()
A)错误信息 B)666 C)888 D)666,888
7、有以下程序:
main( )
{ int x=102,y=012; /*本题考察printf和指定宽度输出及进位制*/ printf(“%2d,%2d\n”,x,y);
}
执行后输出的结果是()
A)10,01 B)02,12 C)102,10 D)02,10
8、以下程序段输出的结果是()
int a=1234;
printf(“%2d\n”,a); /*本题考察printf和指定宽度输出*/
A)12 B)34 C)1234 D)错误,无结果
9、变量x,y,z均为int型的变量,如要从键盘上对该3个变量输入值,则以下语句中正确
的是()
A)read(x,y,z); B)scanf(“%d%d%d”,x,y,z);
C)scanf(“%D%D%D”,x,y,z); D)scanf(“%d%d%d”,&x,&y,&z);
10、若有定义语句:int x,y;若要通过scanf(“%d,%d”,&x,&y);语句使变量x得到数值11,
变量y得到数值12,下面4组输入形式中,错误的是()
A)11 12<回车> B)11,<空格>12<回车>
C)11,12<回车> D)11,<回车>12<回车>
11、以下程序的输出结果为()
main()
{ int m=2,n=3;
printf(“m=%%d,n=%%d”,m,n); /*本题考察printf和%的输出*/
}
A)m=2,n=3 B)m=%2,n=%3 C)m=%%d,n=%%d
D)m=%d,n=%d
12、(偏难)设有定义:int a;float b;执行scanf(“%2d%f”,&a,&b);语句时,若从键盘上
输入876<空格>543.0<回车>,a和b的值分别是()
A)876和543.000000 B)87和6.000000
C)87和543.000000 D)76和543.000000
/*本题考察scanf的输入分隔符和输入数据宽度限制(PPT上有此知识点)*/
13、程序编写题:请编写一个程序,要求用户随意输入3个整数,程序对这三个数的大小进
行比较,并将最小的数输出。
(该题可以不用交,有程序编写的问题请直接问我。
)
第二次上课材料
1、C语言本身没有输入、输出语句,输入输出操作是由库函数完成的
2、printf输入是由双引号括起来的格式转换控制信息。
它分为两种信息:一种
用于说明的信息,计算机会“原样输出”;另外一种是带有“%”的格式转换的说明,用于指定输出的数据的格式。
3、输出数据的个数与输出控制中的格式转换说明的个数相等、顺序上一一对应、
类型相等
4、格式说明的个数应与输出项的个数相同。
若格式说明的个数少于输出项的个
数,多余的输出项不输出;若格式说明的个数多于输出项的个数则对多余的格式说明将输出不定值。
5
即%ld
6、可以在%和格式字符之间加入一个整数来控制输出数据所占的宽度,如果整
数指定的宽度大于实际输出数据的宽度,左边自动补空格;反之,则以输出数据的实际宽度输出。
7、当在%和格式字符f之间加入“整数1.整数2”来控制输出数据的格式时,“整
数1”用于指定输出数据占的总宽度,“整数2”用于指定输出实数的小数部分的个数。
此时:“优先满足小数”
当输出数据的小数个数多于“整数2”指定的个数时,截去多余的数据,并对截去的第一位小数作四舍五入处理。
8、使用putchar函数输出字符型数据,不需要格式说明
putchar(c); c可以是字符变量名,也可以是字符常量,如:putchar(‘C’);
9、scanf函数的一般格式:scanf(输入控制, 输入数据列表)
其中,“输入控制”的含义与printf函数的“输出控制”相同,它的作用是指定输出时的转换格式。
输入数据列表是一个或多个合法的地址表达式。
10、当从键盘输入多个数值时,输入数值数据之间用分隔符(包括空格符、制表
符和回车符,但是不包括逗号)隔开。
例如:int a ,b ,c ; scanf(“%d%d%d”,&a,&b,&c);
如对a,b,c分别输入1、2、3,则输入数据的形式:1<间隔符>2<间隔符>3<间隔符>
特别注意:输入字符时,空格、逗号也会被输入
11、输入控制时,格式说明的类型与输入项的类型应该一一对应匹配。
如果不匹
配,系统并不给出错误信息,但是不能得到正确的输入数据。
注意:当输入long型时,须使用%ld;输入double型时,须使用%lf或%le
12、在scanf中格式字符前可以用一个整数指定输入数据所占的宽度,但不能规
定输入小数的位数。
例如:scanf(“%3d%2d”,&a,&b);运行时输入123456(可不用敲入间隔符)
13、格式说明个数少于输入项个数,系统自动结束输入,多余数据没有被读入。
可作为下一个输入操作的输入数据;如果格式说明的个数多于输入项个数,系统同样结束输入
14、跳过输入数据的方法,可以在格式字符与%之间加入一个“*”使输入过程跳过
输入的数据。
例如:scanf(“%d%*d%d”,&a,&b,&c);如果输入形式为:1<>2<>3<>4
则a=1, b=3, c=4
15、如果数据输入未完成,则程序一直等待键盘输入。
16、可以使用getchar输入字符型数据,不需要格式说明。
调用形式如下:
c=getchar( ); 这条语句表示等待用户从键盘输入一个字符。
17、逻辑值:用非0来表示“真”,用0表示“假”。
18、关系运算符是双目运算符。
用关系运算符将两个表达式连接
起来的表达式叫
关系表达式。
例如:(a=10)>(b=20)
19、优先级:!(逻辑“非”)、算术运算符、关系运算符、&&(逻辑“与”)、
||(逻辑“或”)、赋值运算符。
20、短路现象:当||前面表达式是真的时候,就能知道整个表达式为真,||后边
的表达式将”跳过”。
当&&前面的表达式是假的时候,能确定整个逻辑与为假,将不执行后边的表达式。