概述
1.执行语句putchar('S');
后,在屏幕上显示的输出结果是'S'
。屏幕显示的输出结果应该是 S ,没有单引号。F
2.为了检查以下else-if语句的三个分支是否正确,至少需要设计63组测试用例,即ch
的取值至少有63组(52个大小写英文字母、10个数字字符、其他字符)。T
if((ch >= 'a' && ch <= 'z' ) || ( ch >= 'A' && ch <= 'Z'))
letter ++;
else if(ch >= '0' && ch <= '9')
digit ++;
else
other ++;
3.设变量已正确定义,以下是合法的switch语句. F case中的变量值只能是整数常量值,不能有多余的符号
switch(choice){
case choice == 1: price = 3.0; break;
case choice == 2: price = 2.5; break;
case choice == 3: price = 4.0; break;
case choice == 4: price = 3.5; break;
default: price = 0.0; break;
}
4.对于如下switch语句(不使用break)的一般形式,其执行流程是:首先求解表达式,如果表达式的值与某个常量表达式的值相等,则执行该常量表达式后的所有语句段,如果表达式的值与任何一个常量表达式的值都不相等,则执行 default 后的所有语句段。T
switch (表达式) {
case 常量表达式1: 语句段1;
case 常量表达式2: 语句段2;
…
case 常量表达式n: 语句段n;
default:语句段n+1;
}
1.下列运算符中,优先级最低的是(B )。A=D>C>B
A.*
B.=
C.==
D.%
2.设变量已正确定义,为了检查以下else-if语句的分支是否正确,至少需要设计( B)组测试用例。+ ,- ,* , / ,value2 = 0,还有一个随便的东西
if(op == '+'){
printf("=%.2fn", value1 + value2);
}else if(op == '-'){
printf("=%.2fn", value1 - value2);
}else if(op == '*'){
printf("=%.2fn", value1 * value2);
}else if(op == '/'){
if(value2 != 0){
printf("=%.2fn", value1 / value2);
}else{
printf("Divisor can not be 0!n");
}
}else{
printf("Unknown operator!n");
}
A.7 B.6 C.5 D.4
3. 有一函数
程序段中错误的是(C)
A.
if(x > 0) y = 1;
else if(x == 0) y = 0;
else y = -1;
B.
y = 0;
if(x > 0) y = 1;
else if(x < 0) y = -1;
C.
y = 0;
if(x >= 0);
if(x > 0) y = 1;
else y = -1; 输入0出来的是-1
D.
if(x >= 0)
if(x > 0) y = 1;
else y = 0;
else y = -1;
1.C语言中,以下( ABCD)是法合的字符常量。字符型常量用一对单括号以及所括起的字符表示
A.'A'
B.'z'
C.'0'
D.'$'
E."a" 'a'
2.对于以下两个程序段,下列叙述正确的是( ACF)。
A.在程序段1和程序段2中,语句y = x + 1;
的执行条件皆为满足x<1。
B.在程序段1和程序段2中,语句y = x + 1;
的执行条件皆为满足x<2。
C.在程序段1中,语句y = x + 2;
的执行条件是满足x>=2。
D.在程序段1中,语句y = x + 2;
的执行条件是满足x>=1且x<2。
E.在程序段2中,语句y = x + 2;
的执行条件是满足x>=2。
F.在程序段2中,语句y = x + 2;
的执行条件是满足x>=1且x<2。
/ * 程序段1 */
if (x < 2){
if (x < 1){
y = x + 1;
}
}else{
y = x + 2;
}
/ * 程序段2 */
if (x < 2){
if (x < 1){
y = x + 1;
}else{
y = x + 2;
}
}
3.设变量已正确定义,以下(ACD)是合法的switch语句。
A.
switch(op){
default: printf("Errorn"); break;
}
B.
switch(op){
case '*': printf("%dn", value1 * value2); break;
case '+': printf("%dn", value1 + value2); break;
case '-': printf("%dn", value1 - value2); break;
case '*': printf("%dn", value1 * value2); break;
default: printf("Errorn"); break;
}
C.switch('/') √
switch('/'){
case '*': printf("%dn", value1 * value2); break;
case '-': printf("%dn", value1 - value2); break;
case '+': printf("%dn", value1 + value2); break;
default: printf("Errorn"); break;
}
D.
switch(op+1){
default: printf("Errorn"); break;
case '*': printf("%dn", value1 * value2); break;
case '+': printf("%dn", value1 + value2); break;
}
E.
switch(op){
case op == '+': printf("%dn", value1 + value2); break;
default: printf("Errorn"); break;
}
4.设变量已正确定义,以下(BCD)是合法的switch语句。
A.
switch(choice){
case 1: price = 3.0; break;
case 2: price = 2.5; break;
case 3: price = 4.0; break;
case 4: price = 3.5; break;
case 1: price = 3.0; break;
default: price = 0.0; break;
}
B.
switch(choice){
case 1: price = 3.0; break;
case 2+2: price = 3.5; break;
}
C.switch(9) √
switch(9){
case 3: price = 4.0; break;
case 2: price = 2.5; break;
}
D.
switch(choice* choice+1){
default: price = 0.0; break;
case 2: price = 2.5; break;
}
5.判断ch是数字字符的C语言表达式是(BD ) 。
A.
'0' <= ch <= '9'
B.
ch >= '0' && ch <= '9'
C.ch <= '9'
ch >= '1' && ch <= '10'
D.
! (ch < '0' || ch > '9')
6.设变量已正确定义,以下程序段( AD) 的功能是交换变量x
和y
的值。
A.
temp = x; x = y; y =temp;
B.
x = y; y = x;
C.
y = x; x = y;
D.
x = x + y; y = x - y; x = x – y;
1.写出执行以下程序段后变量的值。
int i, s = 0;
for(i = 1; i < 10; i = i + 2){
s = s + i;
}
i
的值是11;s
的值是25 。
2.写出执行以下程序段后变量的值。
char op;
int value1, value2;
scanf("%d%c%d", &value1, &op, &value2);
switch(op){
case '+': printf("%d", value1 + value2);
default: printf("Error");
case '-': printf("%d", value1 - value2);
}
输入11+1
,输出12Error10;
输入14-5
,输出9;
输入10$100
,输出Error-9。
3.写出执行以下程序段后变量的值。
char ch;
int digit, i, minus, other;
digit = minus = other = 0;
for(i = 1; i <= 5; i++){
ch = getchar();
switch (ch){
case '-':
minus++; break;
case '0' : case '1' : case '2' : case '3' : case '4' :
case '5' : case '6' : case '7' : case '8' : case '9' :
digit ++;break;
default:
other ++; break;
}
}
输入R-e-d
,digit的值是0 ,minus的值是 2,other的值是3.
输入1+4-5
,digit的值是 3,minus的值是1,other的值是1.
输入16-or
,digit的值是2,minus的值是1,other的值是2.
4.写出执行以下程序段后变量的值。
int x, y;
scanf("%d", &x);
if (x > 0){
y = 1;
}else if (x = 0){
y = 0;
}else{
y = -1;
}
输入10
,x
的值是10.
若输入-10
,x的值是0.
5.写出以下程序段的运行结果。
if(op == '+'){
printf("%d", value1 + value2);
}
if(op == '-'){
printf("%d", value1 - value2);
}else{
printf("Error");
}
输入8-5
,则输出3
输入3+4
,则输出7Error
1.为鼓励居民节约用水,自来水公司采取按用水量阶梯式计价的办法,居民应交水费y(元)与月用水量x(吨)相关:当x不超过15吨时,y=4x/3;超过后,y=2.5x−10.5。请编写程序实现水费的计算,要求定义和调用函数fun(x)计算水费,其中x的类型是double,函数类型是double。
#include <stdio.h>
double fun(double x);
int main()
{
double x, y;
scanf ("%lf", &x);
y=fun(x);
printf ("f(%.2f) = %.2fn", x, y);
return 0;
}
double fun(double x)
{
double result;
if (x <= 15){
result = 4 * x / 3;
}else{
result = 2.5 * x - 10.5;
}
return result;
}
2.假设变量已正确定义并赋值,写出满足下列条件的C表达式。
① 与数学式
对应的C表达式:sqrt(s*(s-a)*(s-b)*(s-c))。
② 取number的个位数字:number%10。
③ 取number的十位数字:number/10%10 。
④ 取number的百位数字:number/100%10。
⑤ number是奇数:number%2!=0。
⑥ number是5的倍数:number%5==0。
3.输入一个正整数n
,再输入n
个字符,将这些字符输出,输出时在字符之间加一个空格,最后一个字符的后面没有空格。
输入格式:
在第1行输入一个正整数n
在第2行输入n
个字符
输出格式:
在一行内输出n
个字符,请注意:字符之间有一个空格,最后一个字符的后面没有空格。
输入样例:
5
Happy
输出样例:
H a p p y
# include <stdio.h>
int main()
{
char ch;
int first = 1, k, n;
scanf("%dn", &n);
for(k = 1; k <= n; k++){
ch=getchar();
if ( first == 1 ){
putchar(ch);
frist=0;
}else{
putchar(' ');
putchar(ch);
}
}
return 0;
}
4.ch
不是小写英文字母。
(ch<'a'||ch>'z')
5.输入15个字符,统计并输出空格或回车、数字字符和其他字符的个数。要求使用switch语句编写。请注意,输入15个字符后,需回车表示输入结束,这最后一个回车表示输入结束,不统计在内。
# include <stdio.h>`
int main()
{
int blank, digit, i, other;
char ch;
blank = digit = other = 0;
for(i = 1; i <= 15; i++){
ch = getchar();
switch (ch){
case' ':
case'n';
blank++;
break;
case '0' : case '1' : case '2' : case '3' : case '4' :
case '5' : case '6' : case '7' : case '8' : case '9' :
digit++;
break;
default:
other++;
break;
}
}
printf("blank = %d, digit = %d, other = %dn", blank, digit, other);
return 0;
}
6.输入年,输出该年每个月的天数。其中1、3、5、7、8、10、12月有31天,4、6、9、11月有30天,2月平年有28天,闰年有29天。判断闰年的条件是:能被 4 整除但不能被 100 整除,或者能被 400 整除。
#include <stdio.h>
int main()
{
int day, month, year;
scanf("%d", &year);
for(month = 1; month <= 12; month++){
switch (month){
case 2:
if((year%4==0&&year%100!=0)||year%400==0)
day = 29;
}else{
day=28;
}
break;
case 1:case 3:case 5:case 7:case 8:case 10:case 12:
day = 31; break;
case 4:case 6:case 9:case 11:
day = 30; break;
}
printf("%d ", day) ;
}
return 0;
}
7.输入一个正整数n,再输入n个整数,输出其中的偶数。。
# include <stdio.h>
int main()
{
char ch;
int first, k, n, x;
scanf("%d", &n);
fiest=1;
for(k = 1; k <= n; k++){
scanf("%d", &x);
if(x%2==0){
if ( first == 1 ){
printf("%d", x);
first=0;
}else{
printf("%d",x);
}
}
}
return 0;
}
最后
以上就是忧心帆布鞋为你收集整理的PTA3的全部内容,希望文章能够帮你解决PTA3所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复