为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > PTA理论考部分

PTA理论考部分

2020-10-29 5页 doc 935KB 106阅读

用户头像 个人认证

百里登峰

暂无简介

举报
PTA理论考部分HW021-3#include<stdio.h>;是编译预处理命令。 (1分)T      F1-5任何一个程序都必须有而且只能有一个main()函数。 (1分)T      F1-6C语言程序是从源文件的第一条语句开始执行的。 (1分)T      F1-7C语言中的所有语句都必须以分号结束。 (...
PTA理论考部分
HW021-3#include<stdio.h>;是编译预处理命令。 (1分)T      F1-5任何一个程序都必须有而且只能有一个main()函数。 (1分)T      F1-6C语言程序是从源文件的第一条语句开始执行的。 (1分)T      F1-7C语言中的所有语句都必须以分号结束。 (1分)T      F1-10以下程序段符合C语言语法。k=1;intk;(1分)T      F1-11C程序中定义的变量,代内存中的一个存储单元。 (1分)T      F1-12在C语言中,单目运算符需要2个操作数。 (1分)T      F1-13若变量定义为intfahr;,则5(fahr-32)/9是符合C语言语法的表达式。 (1分)T      F1-14若变量定义为doublex;,则x%2是符合C语言语法的表达式。 (1分)T      F1-15若变量定义为intn;,当n的绝对值大于1时,则表达式1/n的值恒为0。 (1分)T      F1-17若变量定义为intx,y; ,则x+y=22是符合C语言语法的表达式。 (1分)T      F1-18假设赋值运算符的优先级比算术运算符高,执行以下程序段后,n的值为10。intn;n=10+2;(1分)T      FHW031-4如果变量已经正确定义,则执行以下程序段后,x的值不变。if(x=20){y=1;}else{y=0;}(1分)T      F1-7执行以下程序段,输入10,输出10.00。doublex;scanf("%d",&x);printf("%.2f",x);(1分)T      F1-8执行以下程序段,输入20,输出20.00。doublex;scanf("%f",&x);printf("%.2f",x);(1分)T      F1-9执行以下程序段,输入30,输出30.00。doublex;scanf("x=%lf",&x);printf("%.2f",x);(1分)T      F1-11执行以下程序段,输入100130.025,输出1001#3#0.025。intmoney,year;doublerate;scanf("%d%lf%d",&money,&year,&rate);printf("%d#%d#%.3f",money,year,rate);(1分)T      F1-14如果变量已经正确定义,则表达式fahr++ 与fahr+1等价。 (1分)T      F1-15for语句的一般形式如下,其中的表达式1只执行一次。for(表达式1;表达式2;表达式3)循环体语句(1分)T      F1-16for语句的一般形式如下,若表达式2的值为“假”,则结束循环。for(表达式1;表达式2;表达式3)循环体语句(1分)T      F1-18C程序中,用一对大括号{}括起来的多条语句称为复合语句,复合语句在语法上被认为是一条语句。 (1分)T      F1-19循环体如包括有一个以上的语句,则必须用一对大括号{}括起来,组成复合语句,复合语句在语法上被认为是一条语句。 (1分)T      F1-20在C语言中,仅由一个分号(;)构成的语句称为空语句,它什么也不做。 (1分)T      F1-21执行以下程序段,sum的值是55。inti,sum;for(i=1;i<=10;i++){sum=sum+i;}(1分)T      F1-22以下程序段的功能是计算20的阶乘。inti;doubleproduct;product=0;for(i=1;i<=20;i++){product=product*i;}(1分)T      F1-23执行以下程序段,sum的值是1.5。inti,sum;sum=0;for(i=1;i<=2;i++){sum=sum+1.0/i;}(1分)T      F1-24执行以下程序段,sum的值是0.75。inti;doublesum;sum=0;for(i=2;i<=4;i=i+2){sum=sum+1/i;}(1分)T      F2-1以下程序段()的功能是计算序列1+1/2+1/3+...的前N项之和。 (2分).inti,n,sum;scanf("%d",&n);sum=0;for(i=1;i<=n;i++){sum=sum+1.0/i;}A.inti,n;doublesum;scanf("%d",&n);for(i=1;i<=n;i++){sum=sum+1.0/i;}B.inti,n;doublesum;scanf("%d",&n);sum=0;for(i=1;i<=n;i++){sum=sum+1.0/i;}C.D.inti,n;E.doublesum;F.scanf("%d",&n);G.sum=0;H.for(i=1;i<=n;i++){I.sum=sum+1/i;J.}K.L.inti,n;M.doublesum;N.scanf("%d",&n);O.sum=0;P.for(i=1,i<=n,i++){Q.sum=sum+1.0/i;R.}2-2以下程序段()的功能是计算n的阶乘,假算结果不超过双精度范围。 (2分).inti,n;doubleproduct;scanf("%d",&n);product=0;for(i=1;i<=n;i++){product=product*i;}A.inti,n,product;scanf("%d",&n);product=1;for(i=1;i<=n;i++){product=product*i;}B.inti,n;doubleproduct;scanf("%d",&n);for(i=1;i<=n;i++){product=product*i;}C.inti,n;doubleproduct;scanf("%d",&n);product=1;for(i=1;i<=n;i++){product=product*i;}4-2执行以下程序段,并回答下列问题。请注意,直接填数字,前后不要加空格等任何其他字符。intfahr;doublecelsius;for(fahr=91;fahr<=100;fahr++)celsius=5.0*(fahr-32)/9.0;/*语句①*/printf("%4d%6.1f\n",fahr,celsius);/*语句②*/语句①执行了 (1分) 次语句②执行了 (1分) 次循环体语句共执行了 (1分) 次当循环结束时,变量fahr的值是 (1分)HW041-1if-else语句的一般形式如下,其中的语句1、语句2只能是一条语句。if(表达式)语句1else语句2(1分)T      F1-4为了检查以下省略else的if语句的分支是否正确,至少需要设计3组测试用例,即grade的取值至少有三组(小于、大于、等于60)。if(grade<60){printf("Fail\n");}(1分)T      F1-7如果变量已经正确定义,则执行以下程序段后,x的值不变。x=4;if(x<0){y=-1;}elseif(x=0){y=0;}else{y=1;}(1分)T      F1-8为了检查以下嵌套的if语句的三个分支是否正确,至少需要设计3组测试用例,即yournumber的取值至少有3组(大于、小于、等于mynumber)。if(yournumber==mynumber){printf("GoodGuess!\n");}elseif(yournumber>mynumber){printf("Toobig!\n");}else{printf("Toosmall!\n");}(1分)T      F1-9为了检查以下else-if语句的三个分支是否正确,至少需要设计5组测试用例,即x的取值至少有五组(小于0的数、0、大于0且小于15的数、15和大于15的数)。if(x<0){y=0;}elseif(x<=15){y=4*x/3;}else{y=2.5*x-10.5;}(1分)T      F1-10C语言中的字符常量指单个字符,用一对单引号及其所括起的字符来表示。 (1分)T      F1-11C语言中,字符型数据的值就是其在ASCII字符集中的次序值,即ASCII码。 (1分)T      F1-12C语言中,每个字符型数据在ASCII字符集中都有一个惟一的次序值,即ASCII码。 (1分)T      F1-13C语言中,数字字符'1'的值(ASCII码)就是数字1。 (1分)T      1-14C语言中,数字字符 '0','1','2',…,'9' 的ASCII码按降序连续排列。 (1分)T      F1-15C语言中,大写字母'A','B','C',…,'Z'的ASCII码按升序连续排列。 (1分)T      F1-17C语言中,大小写字母'A','B','C',…,'Z','a','b','c',…,'z'的ASCII码按升序连续排列。 (1分)T      F1-18C语言中,大写字母'M'的ASCII码值比小写字母'm'的ASCII码值大。(1分)T      F1-19C语言中,小写字母'a'的ASCII码值是大写字母'Z'的ASCII码值加1。 (1分)T      F1-20以下C语言表达式的值为“真”。'D'-'A'=='d'-'a'(1分)T      F1-21C语言中不能用printf函数输出字符。 (1分)T      F1-22C语言中不能用scanf函数输入字符。 (1分)T      F1-23执行语句putchar('S');后,在屏幕上显示的输出结果是'S'。 (1分)T      F1-24设变量已正确定义,执行以下程序段,顺序输入三个字符'Q',则输出Q。 (1分)T      Fch=getchar();putchar(ch);1-25设变量已正确定义,执行以下程序段,顺序输入三个字符'k',则输出k。 (1分)T      Fscanf(“%c%c%c”,&ch1,&ch2,&ch3);printf(“%c”,ch2);1-26为了检查以下else-if语句的三个分支是否正确,至少需要设计63组测试用例,即ch的取值至少有63组(52个大小写英文字母、10个数字字符、其他字符)。if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))letter++;elseif(ch>='0'&&ch<='9')digit++;elseother++;(1分)T      F1-27对于如下的switch语句(使用break)的一般形式,其执行是:首先求解表达式,如果表达式的值与某个常量表达式的值相等,则执行该常量表达式后的相应语句段;如果表达式的值与任何一个常量表达式的值都不相等,则执行default后的语句段,最后执行break语句,跳出switch语句。switch(表达式){case常量表达式1:语句段1;break;case常量表达式2:语句段2;break;…case常量表达式n:语句段n;break;default:语句段n+1;break;}(1分)T      F1-28在switch语句中,每一个的case常量表达式的值可以相同。 (1分)T      F1-29在switch语句中,必须使用default。 (1分)T      F1-30设变量已正确定义,以下是合法的switch语句。switch(choice){casechoice==1:price=3.0;break;casechoice==2:price=2.5;break;casechoice==3:price=4.0;break;casechoice==4:price=3.5;break;default:price=0.0;break;}(1分)T      F1-31对于如下switch语句(不使用break)的一般形式,其执行流程是:首先求解表达式,如果表达式的值与某个常量表达式的值相等,则执行该常量表达式后的所有语句段,如果表达式的值与任何一个常量表达式的值都不相等,则执行default后的所有语句段。switch(表达式){case常量表达式1:语句段1;case常量表达式2:语句段2;…case常量表达式n:语句段n;default:语句段n+1;}(1分)T      F1-32case语句后如没有break,顺序向下执行。 (1分)T      F1-33在switch语句中,可以根据需要使用或不使用break语句。 (1分)T      F2-1设变量已正确定义,为了检查以下else-if语句的分支是否正确,至少需要设计()组测试用例。if(op=='+'){printf("=%.2f\n",value1+value2);}elseif(op=='-'){printf("=%.2f\n",value1-value2);}elseif(op=='*'){printf("=%.2f\n",value1*value2);}elseif(op=='/'){if(value2!=0){printf("=%.2f\n",value1/value2);}else{printf("Divisorcannotbe0!\n");}}else{printf("Unknownoperator!\n");}(2分).7A.6B.5C.42-2设变量已正确定义,以下()与其它switch语句不等价。 (2分).switch(choice){case1:price=3.0;break;case2:price=2.5;break;case3:price=4.0;break;case4:price=3.5;break;default:price=0.0;break;}A.switch(choice){default:price=0.0;break;case4:price=3.5;break;case3:price=4.0;break;case2:price=2.5;break;case1:price=3.0;break;}B.C.switch(choice){D.case1:price=3.0;break;E.case2:price=2.5;break;F.case3:price=4.0;break;G.case4:price=3.5;break;H.}I.J.price=0.0;K.switch(choice){L.case1:price=3.0;break;M.case2:price=2.5;break;N.case3:price=4.0;break;O.case4:price=3.5;break;P.}2-3设变量已正确定义,以下()与其它switch语句不等价。 (2分).switch(op){case'+':printf("%d\n",value1+value2);break;case'-':printf("%d\n",value1-value2);break;case'*':printf("%d\n",value1*value2);break;default:printf("Error\n");break;}A.B.switch(op){C.default:printf("Error\n");break;D.case'*':printf("%d\n",value1*value2);break;E.case'-':printf("%d\n",value1-value2);break;F.case'+':printf("%d\n",value1+value2);break;G.}H.if(op!='+'&&op!='-'&&op!='*'){printf("Error\n");}else{switch(op){case'+':printf("%d\n",value1+value2);break;case'-':printf("%d\n",value1-value2);break;case'*':printf("%d\n",value1*value2);break;}}I.J.switch(op){K.case'+':printf("%d\n",value1+value2);break;L.case'-':printf("%d\n",value1-value2);break;M.case'*':printf("%d\n",value1*value2);break;N.}2-5在嵌套使用if语句时,C语言规定else总是()。 (2分).和之前与其具有相同缩进位置的if配对A.和之前与其最近的if配对B.和之前与其最近的且不带else的if配对C.和之前的第一个if配对2-6下列叙述中正确的是()。 (2分).break语句只能用于switch语句A.在switch语句中必须使用defaultB.break语句必须与switch语句中的case配对使用C.在switch语句中,不一定使用break语句2-7有一函数 y=​⎩​⎨​⎧​​​1​0​−1​​​​​​​​x>0​x=0​x<0​​ ,以下程序段中错误的是()。 (2分).A.if(x>0)y=1;B.elseif(x==0)y=0;C.elsey=-1;D.E.y=0;F.if(x>0)y=1;G.elseif(x<0)y=-1;H.I.y=0;J.if(x>=0);K.if(x>0)y=1;L.elsey=-1;if(x>=0)if(x>0)y=1;elsey=0;elsey=-1;2-8下列程序段的输出结果是()。 (2分)intmain(void){inta=2,b=-1,c=2;if(a<b)if(b<0)c=0;elsec++;printf("%d\n",c);return0;}.0A.1B.2C.32-9下列程序段的输出结果是()。 (2分)intmain(void){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf("a=%d,b=%d\n",a,b);return0;}.a=2,b=1A.a=1,b=1B.a=1,b=0C.a=2,b=22-10在执行以下程序时,为使输出结果为:t=4,则给a和b输入的值应满足的条件是()。 (2分)intmain(void){inta,b,s,t;scanf("%d,%d",&a,&b);s=1;t=1;if(a>0)s=s+1;if(a>b)t=s+t;elseif(a==b)t=5;elset=2*s;printf("t=%d\n",t);return0;}.a>bA.a<b<0B.0<a<bC.0>a>b3-1C语言中,以下()是合法的字符常量。 (2分).'A'A.'z'B.'0'C.'$'D."a"Switch后的常量表达式必须为整型或字符型,不能是浮点型3-2设变量已正确定义,以下()是合法的switch语句。 (2分).switch(choice){case1:price=3.0;break;case2:price=2.5;break;case3:price=4.0;break;case4:price=3.5;break;case1:price=3.0;break;default:price=0.0;break;}A.switch(choice){case1:price=3.0;break;case2+2:price=3.5;break;}B.C.switch(9){D.case3:price=4.0;break;E.case2:price=2.5;break;F.}G.H.switch(choice*choice+1){I.default:price=0.0;break;J.case2:price=2.5;break;K.}3-3设变量已正确定义,以下()是合法的switch语句。 (2分).A.switch(op){B.default:printf("Error\n");break;C.}D.switch(op){case'*':printf("%d\n",value1*value2);break;case'+':printf("%d\n",value1+value2);break;case'-':printf("%d\n",value1-value2);break;case'*':printf("%d\n",value1*value2);break;default:printf("Error\n");break;}E.switch('/'){case'*':printf("%d\n",value1*value2);break;case'-':printf("%d\n",value1-value2);break;case'+':printf("%d\n",value1+value2);break;default:printf("Error\n");break;}F.对的!!!switch(op+1){default:printf("Error\n");break;case'*':printf("%d\n",value1*value2);break;case'+':printf("%d\n",value1+value2);break;}G.switch(op){caseop=='+':printf("%d\n",value1+value2);break;default:printf("Error\n");break;}可以改成’+’或者数字43(‘+’对应的ASCII码)‘+’与43一个样3-4设变量已正确定义,选项()与以下程序段不等价。 (2分)switch(choice){case1:price=3.0;case2:price=2.5;default:price=0.0;}.switch(choice){default:price=0.0;case2:price=2.5;case1:price=3.0;}A.price=0.0;switch(choice){case1:price=3.0;case2:price=2.5;}B.if(choice==1){price=3.0;price=2.5;price=0.0;}elseif(choice==2){price=2.5;price=0.0;}else{price=0.0;}3-5设变量已正确定义,选项()与以下程序段不等价。 (2分)switch(op){case'+':printf("%d",value1+value2);default:printf("Error");case'-':printf("%d",value1-value2);}.A.if(op=='+'){B.printf("%d",value1+value2);C.printf("Error");D.}elseif(op!='-'){E.printf("Error");F.}G.printf("%d",value1-value2);H.if(op=='+'){printf("%d",value1+value2);printf("Error");printf("%d",value1-value2);}elseif(op=='-'){printf("%d",value1-value2);}else{printf("Error");printf("%d",value1-value2);}I.if(op=='+'){printf("%d",value1+value2);}elseif(op=='-'){printf("%d",value1-value2);}else{printf("Error");}J.switch(op){case'+':printf("%d",value1+value2);case'-':printf("%d",value1-value2);default:printf("Error");}3-6设变量已正确定义,选项()与以下程序段等价。 (2分)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;}.A.if(ch=='-'){B.minus++;C.}elseif(ch>='5'&&ch<='9'){D.digit++;E.}else{F.other++;G.}H.switch(ch){default:other++;break;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;}I.J.if(ch=='-'){minus++;}elseif(ch>='0'&&ch<='9'){digit++;}else{other++;}K.switch(ch){case'0':case'1':case'2':case'3':case'4':case'-':minus++;break;case'5':case'6':case'7':case'8':case'9':digit++;break;default:other++;break;}3-7设变量已正确定义,选项()与以下程序段不等价。 (2分)if(x<2){if(x<1)y=x+1;}elsey=x+2;.A.if(x>=2)B.y=x+2;C.elseif(x<1)D.y=x+1;E.F.if(x<2)G.if(x<1)y=x+1;H.elsey=x+2;I.J.if(x<2){K.if(x<1){L.y=x+1;M.}else{N.y=x+2;O.}P.}Q.if(x<2)if(x<1)y=x+1;else;elsey=x+2;3-9设变量已正确定义,以下()是合法的C语句。 (2分).A.if(n<=10);B.C.switch(k){D.case1:printf("one");break;E.case2:printf("two");break;F.case1:printf("one");break;G.default:printf("zero");break;H.}I.J.switch(k%2){K.default:printf("zero");break;L.case1:printf("one");M.case1+1:printf("two");N.}O.n=10;switch(k){casen%3:printf("one");casen%4:printf("two");default:printf("zero");}n%3不能在常量表达式区域出现3-10判断ch是数字字符的C语言表达式是()。 (2分).A.'0'<=ch<='9'B.C.ch>='0'&&ch<='9'D.E.ch>='1'&&ch<='10'F.G.!(ch<'0'||ch>'9')3-11设变量已正确定义,以下程序段()的功能是交换变量x和y的值。 (2分).A.temp=x;x=y;y=temp;B.C.x=y;y=x;D.E.y=x;x=y;F.x=x+y;y=x-y;x=x–y;4-3写出以下程序段的运行结果。请注意,直接填单词、字符或者两者的组合,前后不要加空格等任何其他字符。doublegrade;scanf("%lf",&grade);if(grade<60);{printf("Fail");}printf("?");输入50,输出(1分)输入60,输出(1分)输入90,输出(1分)4-5写出以下程序段的运行结果。请注意,直接填单词,前后不要加空格等任何其他字符。mynumber=38;scanf("%d",&yournumber);if(yournumber==mynumber){printf("Right");}if(yournumber>mynumber){printf("Big");}else{printf("Small");}输入20,输出(1分)输入50,输出(1分)输入38,输出(1分)4-6C语言中,数字字符'1'的值(ASCII码)就是数字字符'0'的值加(1分) 。请注意,直接填数字,前后不要加空格等任何其他字符。4-7C语言中,小写字母'z'的值(ASCII码)就是小写字母'a'的值加(1分) 。请注意,直接填数字,前后不要加空格等任何其他字符。4-8C语言中,大写字母'D'的值(ASCII码)就是大写字母'A'的值加(1分) 。请注意,直接填数字,前后不要加空格等任何其他字符。4-9写出以下程序段的运行结果。请注意,直接填数字,前后不要加空格等任何其它字符。intchoice;doubleprice;scanf("%d",&choice);switch(choice){case1:price=3.0;break;case2:price=2.5;break;case3:price=4.0;break;case4:price=3.5;break;default:price=0.0;break;}printf("%0.1f",price);/0表示宽度为0,若超出则按照实际宽度/输入1,输出(1分)输入2,输出(1分)输入3,输出(1分)输入4,输出(1分)输入10,输出(1分)4-11写出以下程序段的运行结果。请注意,直接填数字,前后不要加空格等任何其他字符。intchoice;doubleprice;scanf("%d",&choice);switch(choice){case1:price=3.0;case2:price=2.5;default:price=0.0;}printf("%0.1f",price);输入1,输出 (1分)输入3,输出 (1分)输入10,输出 (1分)4-12写出以下程序段的运行结果。请注意,直接填数字、单词或者两者的组合,前后不要加空格等任何其他字符。charop;intvalue1,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,输出(1分)12Error10输入14-5,输出(1分)输入10$100,输出(1分)Error-90break是大坑!4-14写出以下程序段的运行结果。请注意,直接填数字,前后不要加空格等任何其他字符。charch;intdigit,i,minus,other;digit=minus=other=0;for(i=1;i<=5;i++){ch=getchar();switch(ch){case'0':case'1':case'2':case'3':case'4':case'-':minus++;break;case'5':case'6':case'7':case'8':case'9':digit++;break;default:other++;break;}}输入R-e-d,digit的值是(1分),minus的值是(1分) ,other的值是(1分)输入1+4-5,digit的值是(1分),minus的值是(1分),other的值是(1分)输入167or,digit的值是(1分) ,minus的值是(1分) ,other的值是(1分)4-15对于如下嵌套的if–else语句,在空格中填上True或者False。请注意,直接填单词(区分大小写),前后不要加空格等任何其他字符。if(表达式1)if(表达式2)语句1;elseif(表达式3)语句2;else语句3;当表达式1为(1分) 且表达式2为(1分) 时,执行语句1;当表达式1为(1分) 且表达式2为 (1分) 且表达式3为(1分) 时,执行语句2;当表达式1为(1分) 且表达式2为(1分) 且表达式3为(1分) 时,执行语句3。4-16写出以下程序段A和程序段B的运行结果。请注意,直接填字母、单词或者两者的组合,前后不要加空格等任何其他字符。/*程序段A*/for(i=1;i<7;i++){scanf("%d",&score);score=score/10;switch(score){case10:case9:case8:case7:case6:grade='P';break;default:grade='F';break;}putchar(grade);}printf("Thanks");输入1009050827269,输出(1分)/*程序段B*/for(i=1;i<7;i++){scanf("%d",&score);score=score/10;switch(score){case10:case9:case8:case7:case6:grade='P';break;default:grade='F';break;putchar(grade);}}printf("Thanks");输入1009050827269,输出(1分) 。4-17写出以下程序段A和程序段B的运行结果。请注意,直接填字母,前后不要加空格等任何其他字符。/*程序段A*/chargrade;inti,score;for(i=1;i<6;i++){scanf("%d",&score);score=score/10;switch(score){case10:case9:case8:grade='A';break;case7:grade='P';break;default:grade='F';break;}putchar(grade);}输入10090827269,输出(1分)AAAPF/*程序段B*/chargrade;inti,score;for(i=1;i<6;i++){scanf("%d",&score);score=score/10;switch(score){case10:case9:default:grade='F';break;case8:grade='A';break;case7:grade='P';break;}putchar(grade);}输入10090827269,输出输出(1分)FFAPF10、9和都不是时输出F4-18写出以下程序段A、B、C的运行结果。请注意,直接填单词,前后不要加空格等任何其他字符。/*程序段A*/chargameover;intplayer;gameover=getchar();scanf("%d",&player);if(gameover=='N')if(player==1)printf("Myturn");elseprintf("Yourturn");elseprintf("GAMEOVER");输入N1,输出(1分)输入N2,输出(1分)输入Y1,输出(1分)/*程序段B*/chargameover;intplayer;gameover=getchar();scanf("%d",&player);if(gameover=='N'){if(player==1)printf("Myturn");}elseprintf("GAMEOVER");输入N1,输出(1分)输入Y1,输出(1分)/*程序段C*/chargameover;intplayer;gameover=getchar();scanf("%d",&player);if(gameover=='N')if(player==1)printf("Myturn");elseprintf("GAMEOVER");输入N1,输出(1分)输入N2,输出(1分)4-19写出以下程序段的运行结果。请注意,直接填数字,前后不要加空格等任何其他字符。inta;scanf("%d",&a);if(a>50)printf("%d",a);if(a>40)printf("%d",a);if(a>30)printf("%d",a);输入32,输出(1分)输入46,输出(1分)输入58,输出(1分)4-20以下程序段的运行结果是(1分)。请注意,直接填数字,前后不要加空格等任何其他字符。charc=’b’;intk=4;switch(c){case'a':k=k+1;break;case'b':k=k+2;case'c':k=k+3;}printf("%d",k);9break是大坑!!!4-21写出执行以下程序段后变量的值。请注意,直接填数字,前后不要加空格等任何其他字符。intx,y;scanf("%d",&x);if(x>0){y=1;}elseif(x=0){y=0;}else{y=-1;}输入10,x的值是(1分)若输入-10,x的值是(1分)4-22以下程序段的运行结果是(1分) 。请注意,直接填单词,前后不要加空格等任何其他字符。intk=16;switch(k%3){case0:printf("zero");case1:printf("one");case2:printf("two");}onetwo4-23写出以下程序段的运行结果。请注意,直接填数字、单词或者两者的组合,前后不要加空格等任何其他字符。if(op=='+'){printf("%d",value1+value2);}if(op=='-'){printf("%d",value1-value2);}else{printf("Error");}输入8-5,则输出(1分)输入3+4,则输出(1分)7Error5-1执行以下程序段,输入3,输出(3)。charch;(2分)putchar('(');(2分)putchar(')');5-2输入一个正整数n,再输入n个字符,将这些字符输出,输出时在字符之间加一个空格,最后一个字符的后面没有空格。输入格式:在第1行输入一个正整数n在第2行输入n个字符输出格式:在一行内输出n个字符,请注意:字符之间有一个空格,最后一个字符的后面没有空格。输入样例:5Happy输出样例:Happy#include<stdio.h>intmain(){charch;intfirst=1,k,n;scanf("%d\n",&n);for(k=1;k<=n;k++){(2分)if(first==(2分)){putchar(ch);(2分)}else{(2分)putchar(ch);}}return0;}5-3写出满足下列条件的C表达式。 ch是空格或者回车。(2分)编译错误② number是偶数。(2分)③ year 是闰年,即 year 能被4整除但不能被100整除,或 year 能被400整除。(2分)⑤-1<x≤1(2分)5-5写出满足下列条件的C表达式。① ch是大写英文字母。(2分)② ch不是小写英文字母。(2分)③ ch是数字字符。(2分)④ ch是英文字母。(2分)5-11写出与以下switch语句等价的else-if语句。switch(ch){case'0':case'1':case'2':case'3':case'4':case'-':minus++;break;case'5':case'6':case'7':case'8':case'9':digit++;break;default:other++;break;}if(1分){minus++;}elseif(1分){digit++;}else{(1分)}&&的优先级大于||!》单目》双目》关系的小于,小于等于》==或不等于》逻辑中的&&》逻辑中的||》条件》赋值》逗号5-13写出满足条件10<x<100或者x<0的的C表达式。(2分)&&高于||内部括号不用5-14在一个三角形中,任意两边之和大于第三边。如果变量a、b、c代表三角形的三条边,以下是表示a、b、c能构成一个三角形的C表达式。(2分)5-15输入3个整数,输出其中最大的数。#include<stdio.h>intmain(){inta,b,c,max;scanf("%d%d%d",&a,&b,&c);max=0;if(a>b){if(a>c){(1分)}else{(1分)}}else{if(1分){max=b;}else{(1分)}}printf("%d\n",max);return0;}两个分号!!!!5-16输入年,输出该年每个月的天数。其中1、3、5、7、8、10、12月有31天,4、6、9、11月有30天,2月平年有28天,闰年有29天。判断闰年的条件是:能被4整除但不能被100整除,或者能被400整除。#include<stdio.h>intmain(){intday,month,year;scanf("%d",&year);for(month=1;month<=12;month++){switch(1分){case2:if(1分){day=29;}else{(1分)}(1分)(1分)day=31;break;(1分)day=30;break;}printf("%d",day);}return0;}一个分号赋值和等于==不分!!!5-17输入一个正整数n,再输入n个整数,输出其中的偶数。要求相邻数字中间用一个空格分开,行末不得有多余空格。#include<stdio.h>intmain(){charch;intfirst,k,n,x;scanf("%d",&n);(1分)for(k=1;k<=n;k++){scanf("%d",&x);if(1分){if(first==1){printf("%d",x);(1分)}else{(1分)}}}return0;}printf(“%d”,x);HW051-2while语句的一般形式如下,其中的循环体语句只能是一条语句。while(表达式)循环体语句(1分)T      F复合语句在语法上认为是一条语句1-3若变量已正确定义,以下while循环结束时,i的值为11。i=1;while(i<=10){printf("%d\n",i);}(1分)T      F1-4若变量已正确定义,执行以下while语句将陷入死循环。i=1;while(i<=10);i++;(1分)T      F分号在哪里呀分号在哪里?1-5如果for的循环体语句中没有使用continue语句,则以下for语句和while语句等价。for(表达式1;表达式2;表达式3)for的循环体语句表达式1;while(表达式2){for的循环体语句;表达式3;}(1分)T      Fwhile和for的互换1-7若变量已正确定义,执行以下程序段,输入0或者负数时,循环结束。total=0;scanf("%d",&score);while(score>0){total=total+score;scanf("%d",&score);}(1分)T      F1-8do-while语句的一般形式如下,第一次进入循环时,首先执行循环体语句,然后再检查循环控制条件,即计算表达式,若值为“真”,继续循环,直到表达式的值为“假”,循环结束,执行do-while的下一条语句。do{循环体语句}while(表达式);(1分)T      F1-9do-while语句的一般形式如下,其中的循环体语句至少执行一次。do{循环体语句}while(表达式);(1分)T      F1-10while语句和do-while语句的一般形式分别如下,其主要区别是:while语句先判断循环条件,只有条件满足才进入循环,如果一开始条件就不满足,则循环一次都不执行。而do-while语句先执行循环体,后判断循环条件,所以无论循环条件的值如何,至少会执行一次循环体。while(表达式)循环体语句;do{循环体语句}while(表达式);(1分)T      F注意分号1-12do-while循环至少要执行一次循环语句。 (1分)T      F2-2若变量已正确定义,对以下while循环结束条件的准确描述是()。 (2分)flag=1;denominator=1;item=1.0;pi=0;while(fabs(item)>0.0001){item=flag*1.0/denominator;pi=pi+item;flag=-flag;denominator=denominator+2;}.item的绝对值不大于0.0001A.item的绝对值不小于0.0001B.item的绝对值等于0.0001C.item的绝对值不等于0.00012-4若变量已正确定义,以下while循环正常结束时,累加到pi的最后一项item的值满足()。 (2分)flag=1;denominator=1;item=1.0;pi=0;while(fabs(item)>=0.0001){pi=pi+item;flag=-flag;denominator=denominator+2;item=flag*1.0/denominator;}.item的绝对值小于0.0001A.item的绝对值大于0.0001B.item的绝对值大于等于0.0001C.item的绝对值小于等于0.0001差别就是先算出item再判断,加上Or算出,加上,在判断加上和算出的顺序颠倒了3-1以下程序段()的功能是:输入一批整数,用负数作为输入的结束标志,统计其中大于85的数据个数。 (2分).intcount=0,score;scanf("%d",&score);while(score>=0){if(score>85){count++;}scanf("%d",&score);}printf("%d\n",count);A.intcount=0,score;scanf("%d",&score);while(score>=0){scanf("%d",&score);if(score>85){count++;}}printf("%d\n",count);B.intcount=0,score;while(score>=0){scanf("%d",&score);if(score>85){count++;}}printf("%d\n",count);C.intcount=0,score;while(1){scanf("%d",&score);if(score<0)break;if(score>85){count++;}}printf("%d\n",count);AD4-1若变量已正确定义,执行以下程序段,并回答下列问题。请注意,直接填数字,前后不要加空格等任何其他字符。i=1;while(i<=10)i++;/*语句①*/printf("%d\n",i);/*语句②*/语句①执行了(1分) 次语句②执行了(1分) 次1次分号是循环体语句共执行了(1分) 次当循环结束时,变量i的值是(1分)4-2若变量已正确定义,写出以下程序段的运行结果。请注意,直接填数值,前后不要加空格等任何其他字符。scanf("%lf",&eps);i=0;flag=1;denominator=1;item=1.0;s=0;while(fabs(item)>=eps){item=flag*1.0/denominator;s=s+item;i++;flag=-flag;denominator=denominator+2;}printf("%.2f\n",s);输入2,输出(1分) ,i的值是(1分)输入1,输出(1分) ,i的值是(1分)输入0.2,输出(1分) ,i的值是(1分)0.66666666……是四舍五入成0.674-3若变量已正确定义,写出以下程序段的运行结果。请注意,直接填数字,前后不要加空格等任何其他字符。scanf("%lf",&eps);i=1;flag=1;denominator=1;item=1.0;s=0;while(fabs(item)>=eps){s=s+item;i++;flag=-flag;denominator=denominator+2;item=flag*1.0/denominator;}s=s+item;printf("%.2f\n",s);输入2,输出(1分) ,i的值是(1分)输入1,输出(1分),i的值是(1分)输入0.2,输出(1分),i的值是(1分)4-5若变量已正确定义,写出以下程序段的运行结果。scanf("%d",&k);while(k>0){printf("%d#",k);scanf("%d",&k);}输入1230-1,输出(1分)输入1023-1,输出(1分)输入123-190,输出(1分)4-6若变量已正确定义,写出以下程序段的运行结果。scanf("%d",&k);while(k>=0){scanf("%d",&k);printf("%d#",k);}输入1230-1,输出(1分)输入1023-1,输出(1分)输入123-19,输出 (1分)4-7若变量已正确定义,写出执行以下程序段后变量的值。请注意,直接填数字,前后不要加空格等任何其他字符。/*程序段A*/count=0;scanf("%d",&number);t_number=number;if(t_number<0){t_number=-t_number;}do{count++;t_number=t_number/10;}while(t_number!=0);执行程序段A,输入-1003count的值是(1分)number的值是(1分)t_number的值是(1分)4-8若变量已正确定义,写出执行以下程序段后变量的值。请注意,直接填数字,前后不要加空格等任何其他字符。/*程序段A*/count=0;scanf("%d",&number);t_number=number;if(t_number<0){t_number=-t_number;}do{count++;t_number=t_number/10;}while(t_number!=0);执行程序段A,输入0,count的值是(1分)/*程序段B*/count=0;scanf("%d",&number);t_number=number;if(t_number<0){t_number=-t_number;}while(t_number!=0){count++;t_number=t_number/10;};执行程序段B,输入0,count的值是(1分)4-9若变量已正确定义,写出以下程序段的运行结果。count=0;s=0;new_number=0;scanf("%d",&number);t_number=number;if(t_number<0){t_number=-t_number;}do{digit=t_number%10;s=s+digit;new_number=new_number*10+digit;count++;printf("%d#%d#%d#%d\n",count,digit,s,new_number);t_number=t_number/10;}while(t_number!=0);输入907第1行输出(1分)第2行输出(1分)第3行输出(1分)4-10若变量已正确定义,写出执行以下程序段后变量的值。请注意,直接填数字,前后不要加空格等任何其他字符。s=0;scanf("%d",&number);t_number=number;if(t_number<0){t_number=-t_number;}do{t_number=t_number/10;digit=t_number%10;s=s+digit;}while(t_number!=0);输入259,s的值是(1分)输入9,s的值是(1分)5-2请写出与以下for语句等价的while语句。for(fahr=lower;fahr<=upper;fahr++){celsius=(5.0/9.0)*(fahr-32);printf("%4d%6.1f\n",fahr,celsius);}(2分)while(fahr<=upper){(2分)printf("%4d%6.1f\n",fahr,celsius);(2分)}5-3请将程序段B补充完整,使其与程序段A等价。/*程序段A*/flag=1;denominator=1;item=1.0;pi=0;while(fabs(item)>=0.0001){item=flag*1.0/denominator;pi=pi+item;flag=-flag;denominator=denominator+2;}pi=pi*4;/*程序段B*/flag=1;denominator=1;item=1.0;pi=0;while(fabs(item)>=0.0001){(2分)flag=-flag;denominator=denominator+2;(2分)}(2分)pi=pi*4;不满足,额外再加上一次A的item在前面,算了直接加,在判断B的item先判断,再决定是否加上最后一个没加,循环结束后应该加上HW061-1以下两个程序段等价,其功能是计算 s=1+2+...+10。/*程序段A*/s=0;i=1;while(i<=10){s=s+i;i++;}/*程序段B*/s=0;i=1;while(1){if(i>10){break;}s=s+i;i++;}(1分)T      F1-2以下程序段中,当i大于10或者s大于20时,循环结束。s=0;i=1;while(i<=10){s=s+i;if(s>20){break;}i++;}(1分)T      F1-3在循环中使用break语句或者continue语句,其作用是相同的。 (1分)T      F1-4continue不是结束本次循环,而是终止整个循环的执行。 (1分)T      F作者:王从银单位:吉首大学1-5continue只能用于循环体中。 (1分)T      F作者:王从银单位:吉首大学1-6执行以下while语句,将出现死循环。s=0;i=1;while(1){if(i>10){continue;}s=s+i;i++;}(1分)T      F1-7以下两个程序段等价,其功能是计算 s=1+3+5+7+9。/*程序段A*/s=0;i=0;while(i<10){i++;if(i%2==0){continue;}s=s+i;}/*程序段B*/s=0;i=0;while(i<10){i++;if(i%2!=0){s=s+i;}}(1分)T      F1-8以下两个程序段不等价,执行程序段B将陷入死循环。/*程序段A*/s=0;for(i=1;i<=10;i++){if(i%2==0){continue;}s=s+i;}/*程序段B*/s=0;i=1;while(i<=10){if(i%2==0){continue;}s=s+i;i++;}(1分)T      F1-9在以下程序段中,若变量已正确赋值,当条件i<=limit不满足(即i>limit)或者条件m%i==0满足时,循环结束。inti,limit,m;for(i=2;i<=limit;i++){if(m%i==0){break;}}(1分)T      F1-10C语言的三种循环不可以互相嵌套。 (1分)T      F作者:王从银单位:吉首大学1-11在多层循环中,一个break语句只向外跳一层。 (1分)T      F作者:王从银单位:吉首大学1-12以下程序段中,break语句只执行一次。n=9;for(i=1;i<=n;i++){for(j=1;j<=n;j++){if(i!=1&&j>i){break;}printf("%4d",i*j);}printf("\n");}(1分)T      F1-13在嵌套循环(多层循环)中,每一层循环都应该使用自己的循环变量,以免互相干扰。 (1分)T      F1-14执行以下程序段,将出现死循环。for(i=11;i<=20;i++){for(i=1;i<=10;i++){printf("%4d",i);}printf("\n");}(1分)T      F1-15在嵌套循环(多层循环)中,每一层循环中都不应该改变其他层使用的循环变量的值,以免互相干扰。 (1分)T      F1-16以下程序段的功能是输出1~100之间每个整数的各位数字之和。for(num=1;num<=100;num++){s=0;do{s=s+num%10;num=num/10;}while(num!=0);printf("%d\n",s);}(1分)T      F3-1以下程序段()的功能是:计算1!+2!+3!+…+n!。假设变量和函数都已正确定义。 (2分).sum=0;for(i=1;i<=n;i++){sum=sum+fact(i);/*假设函数fact(i)已正确定义*/}printf("%.0f\n",sum);A.sum=0;for(i=1;i<=n;i++){item=1;for(j=1;j<=i;j++)item=item*j;sum=sum+item;}printf("%.0f\n",sum)B.sum=0;item=1;for(i=1;i<=n;i++){for(j=1;j<=i;j++)item=item*j;sum=sum+item;}printf("%.0f\n",sum)C.for(i=1;i<=n;i++){sum=0;item=1;for(j=1;j<=i;j++)item=item*j;sum=sum+item;}printf("%.0f\n",sum);D.sum=0;item=1;for(i=1;i<=n;i++){item=item*i;sum=sum+item;}printf("%.0f\n",sum);3-2以下程序段()的功能是:输出如下3∗3的简易乘法表。假设变量已正确定义和赋值。 (2分)123246369.n=3;for(i=1;i<=n;i++){for(j=1;j<=n;j++){printf("%4d",i*j);}printf("\n");}A.n=3;for(i=1;i<=n;i++){for(j=1;j<=n;j++){printf("%4d",i*j);printf("\n");}}B.n=3;for(j=1;j<=n;j++){for(i=1;i<=n;i++){printf("%4d",i*j);}printf("\n");}C.n=3;for(i=1;i<=n;i++){for(j=1;j<=n;i++){printf("%4d",i*j);}printf("\n");}3-3以下程序段()的功能是:依次输出10~99之间每个整数的各位数字之和。假设变量已正确定义。(2分).for(num=10;num<=99;num++){s=0;t_num=num;do{s=s+t_num%10;t_num=t_num/10;}while(t_num!=0);printf("%d\n",s);}A.s=0;for(num=10;num<=99;num++){t_num=num;do{s=s+t_num%10;t_num=t_num/10;}while(t_num!=0);printf("%d\n",s);}B.for(num=10;num<=99;num++){s=0;do{s=s+num%10;num=num/10;}while(num!=0);printf("%d\n",s);}C.for(num=10;num<=99;num++){s=0;t_num=num;do{t_num=t_num/10;s=s+t_num%10;}while(t_num!=0);printf("%d\n",s);}D.for(num=10;num<=99;num++){s=0;t_num=num;while(t_num!=0){s=s+t_num%10;t_num=t_num/10;};printf("%d\n",s);}4-1写出以下4个程序段的运行结果。请注意,直接填数字,前后不要加空格等任何其他字符。/*程序段A*/inti,sum=0;for(i=1;i<8;i++){if(i%2==0){continue;}sum=sum+i;}printf("%d",sum);程序段A的输出结果是 (1分)/*程序段B*/inti,sum=0;for(i=1;i<8;i++){if(i%2!=0){continue;}sum=sum+i;}printf("%d",sum);程序段B的输出结果是 (1分)/*程序段C*/inti,sum=0;for(i=1;i<8;i++){if(i%2==0){break;}sum=sum+i;}printf("%d",sum);程序段C的输出结果是 (1分)/*程序段D*/inti,sum=0;for(i=1;i<8;i++){if(i%2!=0){break;}sum=sum+i;}printf("%d",sum);程序段D的输出结果是 (1分)4-2写出以下2个程序段的运行结果。/*程序段A*/intnum=0;while(num<=6){num++;if(num%3==0){continue;}printf("%d#",num);}程序段A的输出结果是(1分)/*程序段B*/intnum=0;while(num<=6){num++;if(num%3==0){break;}printf("%d#",num);}程序段B的输出结果是 (1分)4-3若变量已正确定义,写出执行以下3个程序段后变量的值。请注意,直接填数字,前后不要加空格等任何其他字符。/*程序段A*/sum=0;i=1;while(1){sum=sum+i;i++;if(i>10){break;}}执行程序段A,i的值是 (1分),sum的值是 (1分)/*程序段B*/sum=0;i=1;while(1){sum=sum+i;if(i>10){break;}i++;}执行程序段B,i的值是 (1分),sum的值是 (1分)/*程序段C*/sum=0;i=1;while(1){i++;if(i>10){break;}sum=sum+i;}执行程序段C,i的值是 (1分),sum的值是 (1分)4-4若变量已正确定义,写出执行以下程序段后变量的值。请注意,直接填数字,前后不要加空格等任何其他字符。scanf("%d",&m);if(m<=1){is_prime=0;}elseif(m==2){is_prime=1;}elseif(m%2==0){is_prime=0;}else{is_prime=1;}limit=sqrt(m)+1;for(i=3;i<=limit;i+=2){if(m%i==0){is_prime=0;break;}}输入1,变量is_prime的值是(1分)输入2,变量is_prime的值是(1分)输入11,变量is_prime的值是(1分)输入25,变量is_prime的值是(1分)4-5若变量已正确定义,写出执行以下程序段后变量的值。请注意,直接填数字,前后不要加空格等任何其他字符。scanf("%d",&m);is_prime=1;limit=sqrt(m)+1;for(i=3;i<=limit;i+=2){if(m%i==0){break;is_prime=0;}}输入11,变量is_prime的值是(1分)输入25,变量is_prime的值是(1分)4-6若变量已正确定义,写出以下程序段的运行结果。scanf("%d",&m);limit=sqrt(m)+1;for(i=2;i<=limit;i++){if(m%i==0){printf("No");}else{printf("Yes");}}输入9,输出(1分)输入4,输出(1分)4-7若变量已正确定义,写出以下程序段的运行结果。scanf("%d",&m);limit=sqrt(m)+1;for(i=2;i<=limit;i++){if(m%i==0){printf("No");break;}}printf("Yes");输入11,输出(1分)输入25,输出(1分)4-8若变量已正确定义,写出执行以下4个程序段后变量的值。请注意,直接填数字,前后不要加空格等任何其他字符。/*程序段A*/scanf("%d",&m);cnt=0;limit=sqrt(m)+1;for(i=3;i<=limit;i+=2){cnt++;if(m%i==0){break;}}执行程序段A,输入101,变量cnt的值是(1分)/*程序段B*/scanf("%d",&m);cnt=0;limit=sqrt(m)+1;for(i=2;i<=limit;i++){cnt++;if(m%i==0){break;}}执行程序段B,输入101,变量cnt的值是(1分)/*程序段C*/scanf("%d",&m);cnt=0;limit=m/2;for(i=2;i<=limit;i++){cnt++;if(m%i==0){break;}}执行程序段C,输入101,变量cnt的值是(1分)/*程序段D*/scanf("%d",&m);cnt=0;limit=m-1;for(i=2;i<=limit;i++){cnt++;if(m%i==0){break;}}执行程序段D,输入101,变量cnt的值是(1分)4-9若变量已正确定义,执行以下程序段,并回答下列问题。请注意,直接填数字,前后不要加空格等任何其他字符。n=4;for(i=1;i<=n;i++){for(j=1;j<=n;j++){printf("%4d",i*j);/*语句①*/}printf("\n");/*语句②*/}语句①执行了(1分) 次语句②执行了(1分) 次4-10若变量已正确定义,执行以下程序段,并回答下列问题。请注意,直接填数字,前后不要加空格等任何其他字符。n=5;sum=0;for(i=1;i<=n;i++){item=1;/*语句①*/for(j=1;j<=i;j++){item=item*j;/*语句②*/}sum=sum+item;/*语句③*/}语句①执行了(1分)次语句②执行了(1分)次语句③执行了(1分)次4-11若变量已正确定义,写出以下程序段的运行结果。请注意,不要出现中文的标点符号。n=3;for(i=1;i<=n;i++){for(j=1;j<=i;j++){printf("[%d#%d]\n",i,j);}}第1行输出 (1分) ,第2行输出(1分) ,第3行输出(1分) ,第4行输出 (1分) ,第5行输出(1分) ,第6行输出 (1分) 。4-12若变量已正确定义,写出以下程序段的运行结果。请注意,不要出现中文的标点符号。n=3;for(i=1;i<=n;i++){for(j=1;j<=i;j++){printf("[%d#%d]",i,j);}printf("\n");}第1行输出(1分)第2行输出(1分)第3行输出(1分)4-13若变量已正确定义,执行以下程序段,并回答下列问题。请注意,直接填数字,前后不要加空格等任何其他字符。for(num=99;num<=101;num++){s=0;/*语句①*/t_num=num;/*语句②*/do{s=s+t_num%10;t_num=t_num/10;/*语句③*/}while(t_num!=0);printf("%d\n",s);/*语句④*/}语句①执行了(1分)次语句②执行了(1分)次语句③执行了(1分)次语句④执行了(1分)次5-1输入一个正整数,判断其是否为素数。scanf("%d",&m);if(m==1){is_prime=0;}elseif(m==2){(2分)}elseif(m%2==0){is_prime=0;}else{(2分)}limit=sqrt(m)+1;for(i=3;i<=limit;i+=2){if(m%i==0){(2分)(2分)}}if(2分){printf("Yes\n");}else{printf("No\n");}5-2输入一个非负整数,求1+1/2!+...+1/n!。假设变量和函数都已正确定义,可以调用函数fact(n)计算n的阶乘。scanf("%d",&n);sum=(2分);for(i=1;i<=n;i++){(2分)}printf("%.8f\n",sum);5-3输入一个非负整数,求1+1/2!+...+1/n!。假设变量已正确定义,要求使用嵌套循环编程。scanf("%d",&n);sum=(2分);for(i=1;i<=n;i++){(2分)for(j=1;(2分);j++){(2分)}sum=sum+1.0/factor;}printf("%.8f\n",sum);5-4输入一个非负整数,求1+1/2!+...+1/n!。假设变量已正确定义。scanf("%d",&n);sum=(2分);(2分)for(i=1;i<=n;i++){(2分)sum=sum+item;}printf("%.8f\n",sum);时间限制:400ms内存限制:64MB5-5输入一个正整数n(1≤n≤10),输出n×n的简易乘法表。当n=3时,3×3的简易乘法表如下:123246369inti,j,n;scanf("%d",&n);for(2分){for(2分){printf("%4d",i*j);}(2分)}时间限制:400ms内存限制:64MB5-6输入一个正整数n(1≤n≤10),输出n×n的简易乘法表。当n=3时,3×3的简易乘法表如下:124369inti,j,n;scanf("%d",&n);for(2分){for(2分){printf("%4d",i*j);}(2分)}时间限制:400ms内存限制:64MB5-7输入一个正整数n(1≤n≤10),输出n×n的简易乘法表。当n=3时,3×3的简易乘法表如下:123469inti,j,n;scanf("%d",&n);for(i=1;i<=n;i++){for(2分){/*处理每行数字前的空格*/printf("%4c",'');}for(2分){printf("%4d",i*j);}(2分)}时间限制:400ms内存限制:64MB5-8水仙花数是指一个n位正整数(n≥3),它的每位数字的n次幂之和等于它本身。三位水仙花数满足各位数字的立方和等于自身的正整数,例如:153=1​3​​+5​3​​+3​3​​。for(num=100;num<=999;num++){(2分)s=(2分);do{digit=t_num%10;(2分)t_num=(2分);}while(2分)if(2分){printf("%d\n",num);}}HW071-1函数的实参和形参都可以是变量、常量和表达式。 (1分)T      F作者:张高燕1-2按照C语言的规定,在参数传递过程中,既可以将实参的值传递给形参,也可以将形参的值传递给实参,这种参数传递是双向的。 (1分)T      F作者:张高燕1-3按照C语言的规定,实参和形参的命名不得重复。 (1分)T      F作者:张高燕1-4在C语言中,可以将主调函数放在被调函数的后面,省略函数的声明。 (1分)T      F作者:张高燕1-5在C语言的函数定义中,如果不需要返回结果,就可以省略return语句。 (1分)T      F作者:张高燕1-6在C语言的函数定义中,如果省略了return语句,函数就无法返回主调函数。 (1分)T      F作者:张高燕1-7全局变量只能定义在程序的最前面,即第一个函数的前面。 (1分)T      F作者:张高燕1-8全局变量与局部变量的作用范围相同,不允许它们同名。 (1分)T      F作者:张高燕1-9为了便于计算机存储管理,C语言把保存所有变量的数据区,分成动态存储区和静态存储区,静态局部变量被存放在动态存储区。 (1分)T      F作者:张高燕1-10自动变量如果没有赋值,其值被自动赋为0。 (1分)T      F作者:张高燕1-11静态局部变量如果没有赋值,其存储单元中将是随机值。 (1分)T      F2-1下列计算三角形面积函数的声明中,()是正确的。 (2分).doublearea(doublea,doubleb,doublec);A.doublearea(inta,b,c);B.intarea(doublea,doubleb,doublec)C.doublearea(doublea,b,c)作者:张高燕2-2C语言中函数返回值的类型是由以下()决定的。 (2分).函数定义时指定的类型A.return语句中的表达式类型B.调用该函数时的实参的数据类型C.形参的数据类型作者:张高燕2-3以下关于函数叙述中,错误的是()。 (2分).函数未被调用时,系统将不为形参分配内存单元A.实参与形参的个数必须相等,且实参与形参的类型必须对应一致B.当形参是变量时,实参可以是变量、常量或表达式C.如函数调用时,实参与形参都为变量,则这两个变量不可能占用同一内存空间作者:张高燕2-4有以下函数定义:voidfun(intn,doublex){......}下列选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是()。 (2分).fun(inty,doublem);A.k=fun(10,12.5);B.fun(x,n);C.voidfun(x,n);作者:张高燕2-5下列程序的输出结果是()。 (2分)#include<stdio.h>intf(intn){staticintk,s;n--;for(k=n;k>0;k--)s+=k;returns;}intmain(void){intk;k=f(3);printf("(%d,%d)",k,f(k));return0;}.(3,3)A.(6,6)B.(3,6)C.(6,12)作者:张高燕2-6函数f定义如下,执行语句“sum=f(5)+f(3);”后,sum的值应为()。 (2分)intf(intm){staticinti=0;ints=0;for(;i<=m;i++)s+=i;returns;}.21A.16B.15C.8作者:张高燕2-7在C语言程序中,若对函数类型未加显式说明,则函数的隐含类型为()。 (2分).voidA.doubleB.charC.int作者:张高燕2-8下列程序的输出结果是()。 (2分)fun(inta,intb,intc){c=a*b;}intmain(void){intc;fun(2,3,c);printf(“%d\n”,c);return0;}.0A.1B.6C.无法确定作者:张高燕2-9建立自定义函数的目的之一是()。 (2分).提高程序的执行效率A.提高程序的可读性B.减少程序的篇幅C.减少程序文件所占内存2-10以下正确的函数定义形式是()。 (2分).doublefun(intx,inty)A.doublefun(intx;inty)B.doublefun(intx,inty);C.doublefun(intx,y)作者:张高燕2-11以下不正确的说法是()。 (2分).实参可以是常量、变量或表达式A.实参可以是任何类型B.形参可以是常量、变量或表达式C.形参应与对应的实参类型一致2-12以下正确的说法是()。 (2分).实参与其对应的形参共同占用一个存储单元A.实参与其对应的形参各占用独立的存储单元B.只有当实参与其对应的形参同名时才占用一个共同的存储单元C.形参是虚拟的,不占用内存单元4-1函数是一个完成特定工作的独立程序模块,包括(1分) 和(1分)两种。4-2下列程序运行结果是(2分)#include<stdio.h>intx;intf(intn){intx=1;returnx;}intmain(void){printf("%d%d",f(3),x);return0;}4-3下列程序的输出结果为(2分)#include<stdio.h>intfun3(intm);intmain(void){intn;for(n=1;n<10;n++)if(fun3(n)==1)printf("%d",n);/*%d后有1个空格*/return0;}intfun3(intm){inti;if(m==2||m==3)return1;if(m<2||m%2==0)return0;for(i=3;i<m;i=i+2)if(m%i==0)return0;return1;}4-4输入若干个正整数,判断每个数从高位到低位各位数字是否按值从小到大排列,请根据题意,将程序补充完整。#include<stdio.h>(1分)intmain(void){intn;scanf("%d",&n);while(n>0){if(fun1(n))printf("%d中各位数字按从小到大排列\n",n);scanf("%d",&n);}}intfun1((1分)){intk;(1分)while(m)if(m/10%10>k)return0;else{(1分);k=m%10;}return1;}4-5下列函数输出一行字符:先输出kb个空格,再输出n个指定字符(由实参指定)。请根据题意,将程序补充完整。voidprint((1分)){inti;for(i=1;i<=kb;i++)(1分)for((1分))printf(“%c”,zf);}4-6下列程序的运行结果是(2分) 。#include<stdio.h>intf(intx){staticy=1;x+=y;y++;returnx;}intmain(void){intk;k=f(3);printf("%d%d\n",k,f(k));return0;}5-1输入一个整数,将它逆序输出。要求定义并调用函数reverse(longnumber),它的功能是返回number的逆序数。例如reverse(12345)的返回值是54321。请将函数补充完整。运行示例如下:-123(输入整数-123)-321(逆序后输出-321)longreverse(longnumber){intflag;(1分);flag=number<0?-1:1;if((1分))number=-number;while(number!=0){res=(2分);number/=10;}returnflag*res;}5-2输出80到120之间的满足给定条件的所有整数。条件为构成该整数的每位数字都相同,要求定义和调用函数is(n)判断整数n的每位数字是否都相同,若相同则返回1,否则返回0。请将函数补充完整。运行示例:8899111#include<stdio.h>intmain(void){inti;intis(intn);for(i=80;i<=120;i++)if(is(i))printf("%d",i);printf("\n");return0;}intis(intn){intold,digit;old=n%10;do{digit=n%10;if((1分))return0;(1分);n=n/10;}while(n!=0);(1分);}5-3输出10到99之间各位数字之和为12的所有整数。要求定义和调用函数sumdigit(n)计算整数n的各位数字之和。请将函数补充完整。运行示例:39485766758493#include<stdio.h>intmain(void){inti;intsumdigit(intn);for(i=10;i<=99;i++)if(sumdigit(i)==12)printf("%d",i);return0;}intsumdigit(intn){intsum;(1分);do{(1分);(1分);}while(n!=0);returnsum;}5-4输出150到200之间有且仅有一位数字为9的所有整数。要求定义和调用函数is(n,digit)判断正整数n是否有且仅有一位数字为digit,若满足条件则返回1,否则返回0。运行示例:159169179189190191192193194195196197198#include<stdio.h>intmain(void){inti;intis(intn,intdigit);for(i=150;i<=200;i++)if(is(i,9))printf("%d",i);printf("\n");return0;}intis(intn,intdigit){intnumber,count=0;do{number=n%10;if((1分))count++;(1分)}while(n!=0);if(count==1)(1分)elsereturn0;}
/
本文档为【PTA理论考部分】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索