C语言简单的练习题?

Python020

C语言简单的练习题?,第1张

第一题:

赋值符号"="右边是由常量,变量,运算符,和函数组成的表达式.A,B中第一个"="右边不是一个表达式.

逗号表达式形式是:表达式1,表达式2,..,表达式n按从左到右的顺序逐个求解表达式.整个表达式的值就是最后一个表达式n的值.所以C是一个逗号表达式加一个阔号可以与周围其他逗号区分开,在这里不会有错.

一条语句必须加分号,复合语句必须加中括号.明显D错了.

正确选C

第二题.

自加自减运算符优先与加减运算符

并且按自右向左顺序执行,显然--i,被先合并了.被执行了,那么此刻i就是等于2,所以再执行-的时候变成了2-2,答案自然是A啦.哈

说明下++,--只能和变量组合,当然右边优先.

+++,---你要怎么拆,首先给我拆给变量,两边都是变量当然又是右边优先啦

#include "stdio.h"

int Judge(const char *a,const char *b){

int s,n

for(s=n=0n<10s+=a[n]==b[n++])

return s

}

int main(int argc,char *argv[]){

const char std[]="ABCDBBCBBC"

char ans[10],i,t

printf("Please enter your answer(orderly sequence of ABCD)...\n")

while(1){

if(scanf("%10s",ans)==1)

for(i=0i<10i++)

if(ans[i]!='A' &&ans[i]!='B' &&ans[i]!='C' &&ans[i]!='D')

break

if(i>=10)

break

printf("Input error, redo:\nPlease enter your answer(orderly sequence of ABCD)...\n")

}

printf("\nCorrect answer:\n")

for(t=Judge(std,ans),i=0i<10i++)

if(std[i]==ans[i])

printf("%2d",i+1)

printf("\nTOTAL: %d\n",10*t)

return 0

}

代码格式和运行样例图片: