c语言入门编程题目(c语言入门编程100题)
C语言新手编程题
给你看看我的程序
#includebits/stdc++.h
bool panduan(char a[1000])
{
char z[1000];
int x=0;
for(int i=0;istrlen(a);i++) if(a[i]!='('a[i]!=')'a[i]!='['a[i]!=']')
return false;
for(int i=0;istrlen(a);i++)
{
if(a[i]=='('||a[i]=='[')
{
x++;
z[x]=a[i];
}
if(a[i]==')')
{
if(z[x]=='(') x--;
else
return false;
}
if(a[i]==']')
{
if(z[x]=='[') x--;
else
return false;
}
}
if(!x) return true;
return false;
}
int main()
{
char a[1000];
while(scanf("%s",a))
if(panduan(a)) printf("OK\n");
else printf("Wrong\n");
return 0;
}
C语言入门题
首先说明一下,这道题目的答案却是是 3。
我在编译器运行了一下你的代码:
接下来分析一下这个题目的流程:
1、在if(x y)这个判断条件中,x==1, y==-1,条件是不成立的,所以走else分支。
2、在else分支中,z==2,现在 z+=1之后, z==3。
3、在最后一步printf中打印最终结果z == 3。
如果以上回答对你有帮助,请采纳下,谢谢。
c语言编程题目求解
题目1:
使用if多分支结构:
c
#includestdio.h
int main()
{
int score;
printf("请输入学生的成绩:\n");
scanf("%d", score);
if(score=90 score=99){
printf("学生的成绩等级为A\n");
}else if(score=80 score=89){
printf("学生的成绩等级为B\n");
}else if(score=70 score=79){
printf("学生的成绩等级为C\n");
}else if(score=60 score=69){
printf("学生的成绩等级为D\n");
}else if(score=0 score=59){
printf("学生的成绩等级为E\n");
}else{
printf("输入的成绩不合法\n");
}
return 0;
}
使用switch多分支结构:
c
#includestdio.h
int main()
{
int score;
printf("请输入学生的成绩:\n");
scanf("%d", score);
switch(score/10){
case 10:
case 9:
printf("学生的成绩等级为A\n");
break;
case 8:
printf("学生的成绩等级为B\n");
break;
case 7:
printf("学生的成绩等级为C\n");
break;
case 6:
printf("学生的成绩等级为D\n");
break;
default:
if(score=0 score=59){
printf("学生的成绩等级为E\n");
}else{
printf("输入的成绩不合法\n");
}
break;
}
return 0;
}
题目2:
c
#includestdio.h
#includemath.h
int is_prime(int num)
{
int i;
for(i=2; i=sqrt(num); i++){
if(num%i == 0){
return 0;
}
}
return 1;
}
int main()
{
int num;
printf("请输入一个整数:\n");
scanf("%d", num);
if(is_prime(num)){
printf("%d是素数\n", num);
}else{
printf("%d不是素数\n", num);
}
return 0;
}
题目3:
c
#includestdio.h
#define N 5
int main()
{
int arr[N];
int i, temp;
printf("请输入%d个数:\n", N);
for(i=0; iN; i++){
scanf("%d", arr[i]);
}
for(i=0; iN/2; i++){
temp = arr[i];
arr[i] = arr[N-1-i];
arr[N-1-i] = temp;
}
printf("逆序输出数组:");
for(i=0; iN; i++){
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
求解一道C语言基础编程题。。
intbase(intk,chars[])//按定义,k是进制(2~16),s是输入的字符串
{
int len=0,sum=0; //len 指s字符串长度,sum指转换后的k进制数
int i,j,t,n;
while (s[len]!='\0') len++; //计算s数组长度,也就查看用户从键盘输入了多少字符
i=len-1; //从最高位开始,也就是从最右侧开始计算,比如s=1234ab,先从b开始计算
while (s[i]!='\0') //逐个读取字符串s,第i位的具体字符值,s[i]是否有效
{
n=0; //s[i]是字符(char),s[i]转换成10进制对应的值
if (s[i]='0's[i]='9') //查ascii码表
n=s[i]-48; //48即字符 '0'
else if (s[i]='A's[i]='F') //A--F用来代表10进制下的10~15
n=10+s[i]-'A'; //s[i]是字符(char),s[i]转换成10进制对应的值
t=1;
for (j=0; jlen-i-1; j++) t=t*k;
/* //以上语句等于如下形式,s[i]对应的倍率,假设k=10,就好理解
t=1; //个位,即i=len-1时
t=1*k; //十位 即i=len-2时
t=1*k*k; //百位
t=1*k*k*k; //千位
.....
*/
sum += n*t; //合计,个+十+百+千+...
i--;
}
return (sum);
}
main()
{
int sz;
char str[20];
scanf("%d %s",sz,str);
if (sz2||sz16)
printf("输入错误。\n");
else
printf("%d\n",base(sz,str));
}