简单c语言括号匹配问题问题 求纠错 为什么等号和花括号是红色的

求c语言选择题答案写好题号谢谢^-^_百度知道
求c语言选择题答案写好题号谢谢^-^
1. 已有定义 int a[10],*p; 则正确的赋值语句是(
)。A. p=100;
C.p=a[2]+2;
D.p=a+2; 2. 若有定义int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则不能表示a数组元素的表达式是 (
D.a[10] 3. 设有定义int x[6]={2,4,6,8,5,7},*p=x, 要求依次输出x数组6个元素中的值,不能完成此操作的语句是(
)。A.for(i=0;i&6;i++)printf(&%2d&,*(p++));
B.for(i=0;i&6;i++)printf(&%2d&,*(p+i));C.for(i=0;i&6;i++) printf(&%2d&,*p++);
D.for(i=0;i&6;i++)printf(&%2d&,(*p)++); 4. 若有定义char *s1=&12345&,*s2=&1234&; 则printf(&%d\n&,strlen(strcpy(s1,s2)));的输出结果是(
D.10 5. 若定义int a=511,*b=&a; 则printf(&%d\n&,*b); 的输出结果为(
) 。A.无确定值
B. a的地址
D. 511 6. 若已定义char s[10] ;则下面表达式中不表示s[1]的地址的是(
C.&s[0] +1
D.&s[1] 7. 有定义 int a[ ]={2,5,6,},*p=a+1;
则*(p+1)所代表的数组元素是(
D.a[0] 8.已知有定义int a[10] ; a数组中最后一个元素的地址可表示为(
)。A.&a+9
D.&a[10] 9. 若有定义int x[ ]={8,7,6,5,4,3,2},*s; s=x+3;则表达式*(s-1)的值为(
D. 6 10. 有定义char s[ ]=&China&,*p=s;则执行printf(&%s&,p+1);的输出结果为(
)。A.无输出
提问者采纳
DDDADBBCDC,望采纳,采纳之后有不懂详细解答·谢谢
提问者评价
其他类似问题
为您推荐:
c语言的相关知识
其他1条回答
DDDADCBCDC 仅供参考!!
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁简单的c语言问题 为什么getchar函数不执行,问号处??_百度知道
简单的c语言问题 为什么getchar函数不执行,问号处??
#include&stdio.h&#include&math.h&double Lagrange(int N,double x, double pXYArray[][2]){double L=0;//拉格朗日多项式初始值int j=0;while(j&N){
double q=1;
while(i&N){
if (pXYArray[j][0]==pXYArray[i][0]){
printf(&X值相同,出现错误!&);
return (double)-1;}q=q*(x-pXYArray[i][0])/(pXYArray[j][0]-pXYArray[i][0]);++i;}//end while i&NL=L+q*pXYArray[j][1];++j;printf(&L:%f\n&,L);}//end while j&Nreturn L;}int main(int argc, char**argv){int i,j;
double pXY[5][2];
for(i=0;i&5;i++) for(j=0;j&2;j++) { printf(&请输入pY[%d][%d]:\n&,i,j); scanf(&%lf&,&pXY[i][j]); }
printf(&请输入a的值:\n&); scanf(&%lf&,&a); printf(&当a=%lf时,结果如下:\n&,a);dResult=Lagrange(5,a,pXY);printf(&拉格朗日插值计算结果为:%lg.\n&,dResult);printf(&----------------------------------------------\n&);printf(&----------------------------------------------\n&);printf(&重复计算请按1,结束程序请按0\n&);h=getchar();//为什么getchar()函数总是不会执行????printf(&%c&,h);}while(h!='0');system(&pause&);return 0 ;}
提问者采纳
这是因为getchar前面有一个scanf(&%lf&,&a);你输入完a的值后,是否会 输入回车
这个回车就是一个字符啊,这个字符就被getchar当做你输入的字符了,所以看起来像没有执行,其实是执行了。可以在getchar()前使用 fflush(stdin);刷新标准输入缓冲区,把输入缓冲区里的东西丢弃这样就可以输入字符了。
谢谢,但是加了fflush(stdin);后system(&pause&);报错,是什么原因啊?
报的是什么错误?将错误粘贴上来
提问者评价
非常感谢,解决了,高手啊,可以
其他类似问题
为您推荐:
其他1条回答
当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符.getchar函数的返回值是用户输入的第一个字符的ASCⅡ码,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键.那么是不是你之前输入了好多字符,没getch完
getchar的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁02-0. 整数四则运算(10)时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者乔林(清华大学)本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。输入格式:输入在一行中给出2个正整数A和B。输出格式:在4行中按照格式“A 运算符 B = 结果”顺序输出和、差、积、商。输入样例:3 2输出样例:3 + 2 = 53 - 2 = 13 * 2 = 63 / 2 = 1代码:#include&stdio.h&#include&stdlib.h&int main(){
while(scanf(&%d%d&,&a,&b)==2)
printf(&%d + %d = %d/n&,a,b,a+b);
printf(&%d - %d = %d/n&,a,b,a-b);
printf(&%d * %d = %d/n&,a,b,a*b);
printf(&%d / %d = %d/n&,a,b,a/b);
return 0;}02-1. 厘米换算英尺英寸(15)时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者翁恺(浙江大学)如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)*0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。输入格式:输入在一行中给出1个正整数,单位是厘米。输出格式:在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开。输入样例:170输出样例:5 6代码:#include&stdio.h&#include&stdlib.h&int main(){
while(scanf(&%d&,&cm)==1)
double m=(double)cm*1.0/100;
foot=m/0.3048;
inch=(m*1.0/0.3048-foot)*12;
printf(&%d %d/n&,foot,inch);
return 0;}02-2. 然后是几点(15)时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者翁恺(浙江大学)有时候人们用四位数字表示一个时间,比如1106表示11点零6分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。 读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,即5点30分表示为530。注意,第二个数字表示的分钟数可能超过60,也可能是负数。输入格式:输入在一行中给出2个整数,分别是四位数字表示的起始时间、以及流逝的分钟数,其间以空格分隔。注意:在起始时间中,当小时为个位数时,没有前导的零,即5点30分表示为530;流逝的分钟数可能超过60,也可能是负数。输出格式:输出四位数字表示的终止时间。题目保证起始时间和终止时间在同一天内。输入样例:输出样例:1310代码:#include&stdio.h&#include&stdlib.h&int main(){
int curTime,lastT
while(scanf(&%d%d&,&curTime,&lastTime)==2)
int hour=curTime/100;
int minute=curTime%100;
int sumTime=hour*60+
sumTime+=lastT
printf(&%d%d&,sumTime/60,sumTime%60);
if(sumTime%60==0)
printf(&0&);
printf(&/n&); }
return 0;}02-3. 逆序的三位数(10)时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者翁恺(浙江大学)程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。输入格式:每个测试是一个3位的正整数。输出格式:输出按位逆序的数。输入样例:123输出样例:321代码:#include&stdio.h&#include&stdlib.h&int main(){
while(scanf(&%d&,&num)==1) {
int a=num%10;
int b=num%100/10;
int c=num/100;
printf(&%d%d%d/n&,a,b,c);
if(a==0&&b!=0)
printf(&%d%d/n&,b,c);
if(a==0&&b==0)
printf(&%d/n&,c);
} } return 0;}02-4. BCD解密(10)时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者翁恺(浙江大学)BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位。所以如果一个BCD数的十六进制是0x12,它表达的就是十进制的12。但是小明没学过BCD,把所有的BCD数都当作二进制数转换成十进制输出了。于是BCD的0x12被输出成了十进制的18了!现在,你的程序要读入这个错误的十进制数,然后输出正确的十进制数。提示:你可以把18转换回0x12,然后再转换回12。输入格式:输入在一行中给出一个[0, 153]范围内的正整数,保证能转换回有效的BCD数,也就是说这个整数转换成十六进制时不会出现A-F的数字。输出格式:输出对应的十进制数。输入样例:18输出样例:12代码:#include&stdio.h&#include&stdlib.h&int main(){
while(scanf(&%d&,&num)==1)
printf(&%d/n&,b);
printf(&%d%d/n&,a,b);
return 0;}03-0. 超速判断(10)时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者杨起帆(浙江大学城市学院)模拟交通警察的雷达测速仪。输入汽车速度,如果速度超出60 mph,则显示“Speeding”,否则显示“OK”。输入格式:输入在一行中给出1个不超过500的非负整数,即雷达测到的车速。输出格式:在一行中输出测速仪显示结果,格式为:“Speed: V - S”,其中V是车速,S或者是Speeding、或者是OK。输入样例1:40输出样例1:Speed: 40 - OK输入样例2:75输出样例2:Speed: 75 - Speeding代码:#include&stdio.h&#include&stdlib.h&int main(){
while(scanf(&%d&,&speed)==1)
printf(&Speed: %d - &,speed);
if(speed&60)
printf(&Speeding/n&);
printf(&OK/n&);
return 0;}03-1. 三天打鱼两天晒网(15)时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?输入格式:输入在一行中给出1个不超过1000的正整数N。输出格式:在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并且输出“in day N”。输入样例1:103输出样例1:Fishing in day 103输入样例2:34输出样例2:Drying in day 34代码:#include&stdio.h&#include&stdlib.h&int main(){
while(scanf(&%d&,&day)==1)
if(day%5==1||day%5==2||day%5==3)
printf(&Fishing in day %d/n&,day);
printf(&Drying in day %d/n&,day);
return 0;}03-2. 用天平找小球(10)时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard三个球A、B、C,大小形状相同且其中有一个球与其他球重量不同。要求找出这个不一样的球。输入格式:输入在一行中给出3个正整数,顺序对应球A、B、C的重量。输出格式:在一行中输出唯一的那个不一样的球。输入样例:1 1 2输出样例:C代码:#include&stdio.h&#include&stdlib.h&int main(){
int a,b,c;
while(scanf(&%d%d%d&,&a,&b,&c)==3)
int res=0;
if(res==a)
printf(&A/n&);
if(res==b)
printf(&B/n&);
if(res==c)
printf(&C/n&);
return 0;}03-3. 12-24小时制(15)时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者翁恺(浙江大学)编写一个程序,要求用户输入24小时制的时间,然后显示12小时制的时间。输入格式:输入在一行中给出带有中间的“:”符号(半角的冒号)的24小时制的时间,如12:34表示12点34分。当小时或分钟数小于10时,均没有前导的零,如5:6表示5点零6分。提示:在scanf的格式字符串中加入“:”,让scanf来处理这个冒号。输出格式:在一行中输出这个时间对应的12小时制的时间,数字部分格式与输入的相同,然后跟上空格,再跟上表示上午的字符串“AM”或表示下午的字符串“PM”。如“5:6 PM”表示下午5点零6分。注意,在英文的习惯中,中午12点被认为是下午,所以24小时制的12:00就是12小时制的12:0 PM;而0点被认为是第二天的时间,所以是0:0 AM。输入样例:21:11输出样例:9:11 PM代码:include&stdio.h&#include&stdlib.h&int main(){
while(scanf(&%d%c%d&,&hour,&c,&minute)==3)
if(hour==12)
printf(&%d:%d PM/n&,hour,minute);
if(hour&=0&&hour&12)
printf(&%d:%d AM/n&,hour,minute);
if(hour&12&&hour&=23)
printf(&%d:%d PM/n&,hour-12,minute);
return 0;}03-4. 成绩转换(15)时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者沈睿(浙江大学)本题要求编写程序将一个百分制成绩转换为五分制成绩。转换规则:大于等于90分为A;小于90且大于等于80为B;小于80且大于等于70为C;小于70且大于等于60为D;小于60为E。输入格式:输入在一行中给出1个整数的百分制成绩。输出格式:在一行中输出对应的五分制成绩。输入样例:90输出样例:A代码:#include&stdlib.h&#include&stdio.h&int main(){
while(scanf(&%d&,&grade)==1)
switch(grade/10)
printf(&A/n&);
printf(&B/n&);
printf(&C/n&);
printf(&D/n&);
printf(&E/n&);
return 0;}04-0. 求符合给定条件的整数集(15)时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者徐镜春(浙江大学)给定不超过6的正整数A,考虑从A开始的连续4个数字。请输出所有由它们组成的无重复数字的3位数。输入格式:输入在一行中给出A。输出格式:输出满足条件的的3位数,要求从小到大,每行6个整数。整数间以空格分隔,但行末不能有多余空格。输入样例:2输出样例:234 235 243 245 253
342 345 352
432 435 452
532 534 542 543代码:#include&stdio.h&#include&stdlib.h&int main(){
while(scanf(&%d&,&num)==1)
for(int i=0;i&4;i++)
a[i]=num+i;
int cnt=0;
for(int i=0;i&4;i++)
for(int j=0;j&4;j++)
for(int k=0;k&4;k++)
if(a[i]!=a[j]&&a[i]!=a[k]&&a[j]!=a[k])
if(cnt%6==0)
printf(&%d&,a[i]*100+a[j]*10+a[k]);
printf(& %d&,a[i]*100+a[j]*10+a[k]);
if(cnt%6==0)
printf(&/n&);
}}04-1. 水仙花数(20)时间限制2000 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者徐镜春(浙江大学)水仙花数是指一个N位正整数(N&=3),它的每个位上的数字的N次幂之和等于它本身。例 如:153 = 13&+ 53+ 33。 本题要求编写程序,计算所有N位水仙花数。输入格式:输入在一行中给出一个正整数N(3&=N&=7)。输出格式:按递增顺序输出所有N位水仙花数,每个数字占一行。输入样例:3输出样例:代码:#include&stdio.h&#include&string.h&#include&stdlib.h&int pow(int num,int n){
int pro=1;
for(int i=1;i&=n;i++)
}}int main(){
while(scanf(&%d&,&n)==1)
printf(&17/n9926315/n&);
int a[10];
memset(a,0,sizeof(a));
int start=1,last=1;
for(int i=1;i&n;i++)
start*=10;
last=start*10;
for(int i=i&i++)
int temp=i,cnt=0;
while(temp)
a[cnt++]=temp%10;
int sumtemp=0;
for(int j=0;j&j++)
sumtemp+=pow(a[j],n);
if(sumtemp==i)
printf(&%d/n&,i);
}}04-2. 打印九九口诀表(15)时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者徐镜春(浙江大学)下面是一个完整的下三角九九口诀表:1*1=1
本题要求对任意给定的1位正整数N,输出从1*1到N*N的部分口诀表。输入格式:输入在一行中给出一个正整数N(1&=N&=9)。输出格式:输出下三角N*N部分口诀表,其中等号右边数字占4位、左对齐。输入样例:4输出样例:1*1=1
代码:#include&stdio.h&#include&string.h&#include&stdlib.h&int main(){
while(scanf(&%d&,&n)==1)
for(int i=1;i&=n;i++)
for(int j=1;j&=i;j++)
printf(&%d*%d=%-4d&,j,i,j*i);
printf(&/n&);
}}04-3. 统计素数并求和(20)时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者张彤彧(浙江大学)本题要求统计给定整数M和N区间内素数的个数并对它们求和。输入格式:输入在一行中给出2个正整数M和N(1&=M&=N&=500)。输出格式:在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。输入样例:10 31输出样例:7 143代码:#include&stdio.h&#include&string.h&#include&math.h&#include&stdlib.h&int prime(int n){
if(n==1) return 0;
if(n==2) return 1;
int k=floor(sqrt(n)+0.5);
for(int i=2;i&=k;i++)
if(n%i==0)
return 1;}int main(){
int start,
while(scanf(&%d%d&,&start,&last)==2)
int cnt=0,sum=0;
for(int i=i&=i++)
if(prime(i))
printf(&%d %d/n&,cnt,sum);
}}04-4. 猜数字游戏(15)时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard猜数字游戏是令系统随机产生一个100以内的正整数,用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比较,并提示大了(“Too big”),还是小了(“Too small”),相等表示猜到了。如果猜到,则结束程序。程序还要求统计猜的次数,如果1次猜出该数,提示“Bingo!”;如果3次以内猜到该数,则提示“Lucky You!”;如果超过3次但是在N(&3)次以内(包括第N次)猜到该数,则提示“Good Guess!”;如果超过N次都没有猜到,则提示“Game Over”,并结束程序。如果在到达N次之前,用户输入了一个负数,也输出“Game Over”,并结束程序。输入格式:输入第一行中给出2个不超过100的正整数,分别是系统产生的随机数、以及猜测的最大次数N。随后每行给出一个用户的输入,直到出现负数为止。输出格式:在一行中输出每次猜测相应的结果,直到输出猜对的结果或“Game Over”则结束。输入样例:58 -2代码:#include&stdio.h&#include&string.h&#include&math.h&#include&stdlib.h&int main(){
int num,n;
while(scanf(&%d%d&,&num,&n)==2)
int nu,t=0,cnt=0,flag=0,a[200];
while(scanf(&%d&,&nu)==1&&nu&=0)
for(int i=0;i&t;i++)
if(a[i]&num&&cnt&=n&&flag==0)
printf(&Too small/n&);
if(a[i]&num&&cnt&=n&&flag==0)
printf(&Too big/n&);
if(a[i]==num&&cnt&=n&&flag==0)
if(cnt==1)
printf(&Bingo!/n&);
if(cnt&1&&cnt&=3)
printf(&Lucky You!/n&);
if(cnt&3&&cnt&=n)
printf(&Good Guess!/n&);
if(cnt&n&&flag==0)
printf(&Game Over/n&);
if(t&n||cnt&n)
printf(&Game Over/n&);括号匹配问题使用c语言用栈实现,算法中左括号和匹配两种情况有问题,求助
[问题点数:40分,结帖人mashaoshuai12]
括号匹配问题使用c语言用栈实现,算法中左括号和匹配两种情况有问题,求助
[问题点数:40分,结帖人mashaoshuai12]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关推荐:
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 c语言中大括号的作用 的文章

 

随机推荐