我想要一套关于c语言循环语句的习题,不知哪位大侠有,希望帮帮忙,救急啊!!!先谢了
语法没发现问题,如果你说的是逻辑问题,那只能你自己核实,没有注释,不明白你这个代码想实现什么功能,除了赋值就是判断,我看那个很长的与或组合的条件语句,你逻辑上有没有理对,如果条件太长,你可以考虑把单个条件用变量接收,最后再用变量组条件句,可能会清晰点
#include
#define MAX 100
void main()
{
char ci[MAX], co[MAX];
int i=0,j=0;
printf ("Input string: ");
gets (ci);
while(ci[i]!='\0') {
co[j]=ci[i];
if(ci[i]>='0'&&ci[i]<='7') {
co[j]=ci[i]+2;
}
if(ci[i]>='8'&&ci[i]<='9') {
co[j]=ci[i]-8;
}
if((ci[i]>='e'&&ci[i]='E'&&ci[i]<='Z')) {
co[j]=ci[i]-4;
}
if((ci[i]>='a'&&ci[i]='A'&&ci[i]<='D')) {
co[j]=ci[i]+22;
}
if(ci[i]==' ') {
i++;
continue;
}
i++;
j++;
}
co[j]='\0';
printf("");
puts(co);
}
//每个数字+2再MOD10不就相当于每个数字字符循环右移2位吗?你可以测试一下结果啊?
循环语句
for(表达式1;表达式2;表达式3)
循环语句语句:/*循环体*/
该语句执行过程如下:
①先对表达式1赋初值;
②判别表达式2是否满足给定条件,若其值为真,满足循环条件,则执行循环体内语句,然后执行表达式3,进入第二次循环,再判别表达式2……;否则判断表达式2的值为假,不满足条件,就终止for循环,执行循环体外语句。
while语句格式为:
while(表达式)
语句;/*循环体*/
这里的表达式是循环能否继续下去的条件,而语句是循环体。只要表达式为真,则执行循环体内语句。否则终止循环,执行循环体外语句。
do while语句格式为:
do
语句;/*循环体*/
While(表达式);
程序进入do while循环后,先执行循环体内语句,然后判断表达式的真假,若为真则进行
下一次循环,否则为假则终止循环。该循环语句的特点是,表达式为假时也执行一次循环体
内语句。
1.设有程序段 int k=10; while (k=0) k=k-1; 则下面描述中正确的是 ( )A while循环执行10次 B 循环是无限循环C 循环体语句一次也不执行D 循环体语句执行一次
2.设有以下程序段 int x=0,s=0; while(!x!=0)s+=++x;printf("%d",s) ;则( )A 运行程序段后输出0 B 运行程序段后输出1 C 程序段中的控制表达式是非法的 D 程序段执行无限次
3、语句while(!E);中的表达式!E特等价于( )A、E==0 B、E!=1C、E!=0 D、E==1
4、下面程序段的执行结果是( )a=1;b=2;c=2;while(a<b<c ) {t=a;a=b;b=t;c--;}printf("%d,%d,%d",a,b,c);A、1,2,0 B、2,1,0 C 、1,2,1 D、2,1,1
5、下面程序段的运行结果是( )x=y=0;while(x<15) y++,x+=++y;printf("%d,%d",y,x);A、20,7 B、6,12 C、20,8 D 8,20
6、下面程序段的运行结果是( )int n=0;while (n++<=2); printf("%d",n);A,2 B、3 C、4 D 有语法错误
7、设有程序段t=0;while(printf("*")){t++; if(t<3) break;}下面描述正确的是( )A、其中循环控制表达式与0等价B、其中循环控制表达式与’0‘等价C 、其中循环表达式是不合法的D、以上说法都不对
8、下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等的数时结束循环,请选择填空。main(){int a,b,t;scanf(“%d,%d”,&a,&b);while( ){if(a>b) {t=a;a=b;b=t;}printf(“%d,%d\n”,a,b);scanf(“%d,%d”,&a,&b);}}A、!a=b B、a!=b C、a==b D、a=b
9、下面程序的功能是从键盘输入的一组字符中统计出大写字母个数m和小写字母个数n,并输出m,n中较大者,请选择填空。#include<stdio.h>main( ){int m=0,n=0;char c;while((__)!=’\n’){if(c>=’A’&&c<=’Z’) m++;if(c>’a’&&c<=’z’) n++;}printf(“%d\n”,m<n?___);}A. c==getchar() B.getchar() C.c=getchar() D.scanf(“%c”,c)A. n:m B.m:n C.m:m D.n:n
10、下面程序的功能是将小写字母变成对应大写字母后的第二个字母。其中y变成A,Z变成B。填空#include<stdio.h>main(){char c;while((c=getchar( ))!=’\n’){if(c>=’a’&&c<=’z’){_______;if(c>=’Z’&&c<=’Z’+2)___________;}printf(“%c”,c);}A.c+=2 B.c-=32 C.c=c+32+2 D.c-=30A.c=’B’ B.c=’A’ C.c-=26 D.c=c+26
11,下面程序的功能是在输入的一批正整数中求出最大者,输入0时结束,请选择填空main( ){int a,max=0; scanf(“%d”,&a);while(____){if(max<a) max=a;scanf(“%d”,&a);}printf(“%d”,max);}A.a==0 B.a C!a==1 D.!a
12、下面程序的运行结果是( )main( ){int num=0;while(num<=2){num++; printf(“%d\n”,num);}A.1 B.1<CR>2 C.1<CR>2<CR>3 D.1<CR>2<CR>3<CR>4
13.若运行以下程序时,从键盘输入2473<CR>,则下面程序的运行结果是()#include<stdio.h>main( ){int c;while((c=getchar( ))!=’\n’)switch(c-‘2’){case 0:case 1:putchar(c+4);case 2:putchar(c+4);break;case 3:putchar(c+3);default:putchar(c+2);break;}printf(“\n”);}A.668977 B.668966 C.66778777 D.6688766
14.C语言中while和do-while循环的主要区别是( )A.do-while的循环体至少无条件执行一次B.while的循环控制条件比do–while的循环控制条件严格C.do-while允许从外部转到循环体内D.do-while的循环体不能是复合语句
15 .以下程序段()x=-1 do{x=x*x;}while(!x);A.是死循环B.循环执行二次C.循环执行一次D.有语法错误
16、以下描述中正确的是( )A.由于do -while循环中循环语句中只能是一条可执行语句,所以循环体内不能使用复合语句。B.do-while循环由do开始,且while结束,在while(表达式)后面不能写分号。C.在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作。D.do-while循环中,根据情况可以省略while
17.若有以下语句int x=3;do{print("%d\n",x-=2);} while(!(--x));则上面程序段()A.输入的是1 B.输出的是1和-2 C.输出的是3和0 D.死循环
18.下面程序是从键盘输入学号,然后输出学号中百位数字是3的学号,输入0时结束循环,填空。main(){long int num;scanf("%ld",&num);do{if(_____) printf("%ld,num);scanf("%ld",&num);}while(______);}A.num%100/10==3 .Bnum/100%10==3 C.num%10/10==3 D.num/10%10==3A.!num B.num>0==0 C.!num==0 D.!num!=0
19.下面程序的运行结果是( )#include<stdio.h>
main( )
{int y=10;
do {y--;}while(--y);
printf(“%d\n”,--y);}
A .-1 B.1 C.8 D.-8
20.若运行以下程序时,从键盘输入ADescriptot<CR>(<CR>表示回车),下面程序的运行结果是
#include<stdio.h>
main( )
{char c;
int v0=0,v1=0,v2=0;
do{
switch(c=getchar( ))
{case ’a’:case ’A’:
case ’e’:case’E’:
case ’i’:case ’I’:
case ’o’:case ’O’:
case ’u’:case ’U’:v1+=1;
default:v0+=1;v2+=1;}
}while(c!=’\n’);
printf(“v0=%d,v1=%d,v2=%d\n”,v0,v1,v2);}
A)v0=7,v1=4,v2=7 B)v0=8,v1=4,v2=8
C)v0=11,v1=4,v2=11 D)v0=12,v1=4,v2=12
21.下面程序的运行结果是
#include<stdio.h>
main( )
{int a=1,b=10;
do
{b-=a;a++;}while(b--<0);
printf(“a=%d,b=%d\n”,a,b);}
a=3,b=11 B)a=2,b=8 C)a=1,b=-1 D)a=4,b=9
22.下面有关for循环的正确描述是( )A.for循环只能用于循环次数已经确定的情况B.for 循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D.for循环的循环体语句中,可以包含多条语句,但必须花括号括起来
23.对for(表达式1;; 表达式3)可理解为( )A.for(表达式1;0; 表达式3)B.for(表达式1;1;表达式3)C.for(表达式1;表达式1;表达式3)D.for(表达式1;表达式3;表达式3)
24.若i为整型变量,则以下循环执行的次数是( )for(i=2;i=0;) printf(“%d”,i--)A.无限次 B.0次 C.1次 D.2次
25.以下for循环的语句是( )for(x=0,y=0;(y=123)&&(x<4);x++);A.是无限循环 B.循环次数不定C.4次 D.3次
26.以下不是无限循环的语句是( )A.for(y=0,x=1;x>++y;x=I++) I=x;B.for(; ;x++=I);C.while(1) {x++;}D.for(I=10; ;I--) sum+=I;
27.以下程序段的运行结果是( )for (y=1;y<10;) y=((x=3*y,x+1),x-1);printf(“x=%d,y=%d”,x,y);A. x=27,y=27 B.x=12,y=13 C.x=15,y=14 D.x=y=27
28. 下面程序段的运行结果是____
for(x=3;x<6;x++)printf((x%2)?(“**%d”):(“##%d\n”),x);
a)**3 b)##3 c)##3 d)**3##4
##4 **4 **4##5 **5
**5 ##5
29.下列程序段不是死循环的是( )A. int I=100 while(1){I=I%100+1;if(I>100)break;}B. for(;;)C. int k=0;do{++k;}while(k>=0);D.int s=36; while(s); --s;30.执行语句for(I=1;I++<4;);后变量I的值是( )A.3; B.4 C.5 D.不定
我这有c的竞赛题目。要不
给个邮箱啊
关于C语言推荐的一些书籍
1. 基石之作:《C Primer Plus》Stephen Prata的这本经典之作,是C语言新手的启蒙读物。无论你是零基础还是想巩固基础,它详细讲解了C11标准下的基本语法,并通过丰富的实例让你领略到理论在实践中的运用。虽然它对标准库的介绍稍显简略,但对于初学者来说,这是一本不可或缺的入门书籍。2. 与时...
C语言学习资源整理
1.实验楼一C语言入门教程 教程+在线开发环境的方式,教程文档详细的讲解C语言基础知识,在线开发环境和本地一样,可以随时动手跟着教程操作,动手学习的方式非常适合入门初学者。 2.gitbook一一笨方法学C 内容较完整丰富,相当于一本书籍了,适合新手入门学习。 3.菜鸟教程一C 语言教程 纯在线文字教程,讲解的不是那么详细...
c语言用什么软件编写?
学c语言可以用的软件推荐如下:1、TurboC是由美国Borland公司开发的一套C语言程序开发工具,Borland公司是一家专门从事软件开发、研制的大公司。该公司相继推出了一套Turbo系列软件,如TurboBASIC、TurboPascal、TurboProlog,这些软件很受用户欢迎。TurboC集成了程序编辑、调试、链接等多种功能。2、WIN-TC是...
我想要一套关于c语言循环语句的习题,不知哪位大侠有,希望帮帮忙,救急啊...
c=’A’ C.c-=26 D.c=c+2611,下面程序的功能是在输入的一批正整数中求出最大者,输入0时结束,请选择填空main( ){int a,max=0; scanf(“%d”,&a);while(___){if(max<a) max=a;scanf(“%d”,&a);}printf(“%d”,max);}A.a==0 B.a C!a==1 D.!a 12、下面程序的运...
新手同学学C语言推荐哪些软件
Windows 环境下的一个轻量级 C语言\/C++ 集成开发环境(IDE),遵守GPL许可协议分发源代码。它集合了功能强大的源码编辑器、MingW64\/TDM-GCC 编译器、GDB 调试器和 AStyle 格式整理器等众多自由软件,操作十分便捷。 2、Code::Blocks 这是一个开源、跨平台的C\/C++开发软件,也是轻量级的,相比较功能比较单一的Dev-C++...
一些有关C语言中实用且很牛的技能!
些有关c语言中实用且眼牛的技能 一、指定的初始化 很多人都知道像这样来静态地初始化数组:int fibs[1={1,1,2,3,5},C99标准实际上支持一种更为直观简单的方式来初始化各种不同的集合类数据(如:结构体,联合体和数组)。 二、数组 我们可以指定数组的元素来进行初始化。这非常有用,特别是当我们需要根据一组...
初学者想要学习C 语言编程,该从哪里入手?
下载并安装一个C语言编译器,例如GCC(GNU Compiler Collection)。对于Windows用户,可以选择安装MinGW或使用集成开发环境(IDE)如Code::Blocks或Visual Studio Code,它们通常包括了编译器。从基础语法开始:学习C语言的基本语法规则,包括数据类型、变量和常量的定义,以及运算符的使用。理解控制结构:熟悉...
关于C语言
1 char c[ ]=”very good”是一个合法的字符串赋值的语句(T )3 共同体变量所占的内存长度等于最长成员长度( T)5 如果想要一个数组全部元素值为0可以写成int a[10]={0*10}( F)7 若i=3,则printf(“%d”,-i++)输出值为-4( F)9 c程序中有调用关系的所有函数必须放在同一个源程序...
C语言—入门技巧大学生推荐
C语言入门技巧亲测推荐 技巧1: 不要使用“GOTO”语句 编程语言终究开始引入了函数的概念,即允许程序对代码进行断行。如果已经完成,不再使用goto语句来表示代码的断行。函数调用后,函数将回到下一条指令。 只要看到或想到qoto语句,就会让软件工程师退缩,产生本能 的厌恶。其中一个主要的原因是,一个遍布goto语句的程...
c语言小游戏编程代码,C语言编程时
实例代码先上C语言编写的一个C程序代码,如下图。在C语言编程中经常会用到缓冲区,一定要很好的理解它,为了做到这一点,仅仅凭借C语言自身那点语法是做不到的,于是就有牛人或者组织编写了一套用于C程序的IO函数库,例如ANSI就规定了一套IO函数库,也就是标准的C语言IO函数库。1、C语言编程时,有...
韶盼治糜: 1、编写递归函数求 1+2+3+……+n 的和;2、编写递归函数求 2*4*6*……*(2n) 的积;3、编写递归函数求 n 的阶乘;4、汉诺塔问题;实际上很多问题都可以通过递归来实现,但是看到你的情况估计较难的你实现不了,所以给你几个简单的练习一下,这样可以增强对递归的理解,等理解的较为深入后再做稍微难一些的.
连城县17795419558: C语言循环语句习题! - ?
韶盼治糜: #include<stdio.h> main() { register n=1; while(1) { if((n%2==1)&&(n%3==2)&&(n%5==4)&&(n%6==5)&&(n%7==0)) //判断 { printf("%d\n",n); break; } n++; } printf("%d%%2=%d…%d\n",n,n/2,n%2); //验算 printf("%d%%3=%d…%d\n",n,n/3,...
连城县17795419558: c语言关于for循环的题目 - ?
韶盼治糜: #include "stdio.h" void main() { int n,d60=0,i,cj,z=0; float av; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&cj); if(cj>=60)d60++; z+=cj; } av=z*1.0/n; printf("%d个人中成绩大于等于60的人有%d个,平均成绩(两位小数)为%5.2f\n",n,d60,av); }有什么问题请留言.
连城县17795419558: C语言循环结构题 - ?
韶盼治糜: 第一个for循环开始:i=0进入第二个for循环j依次区0,1 然后跳出第二个for循环,回到第一个,i++=2;继续进入第二个循环,j=0,j=1;....
连城县17795419558: C语言简单的 for循环练习 - ?
韶盼治糜: 首先对于知识点,你应该了解for循环的执行顺序,其次对于变量和运算符的运算要掌握.输出10的原因很简单,第一个if(x=10),对x赋值为10,此时x不为0,所以条件为真,执行break跳出for循环,prinft以整数方式输出x.
连城县17795419558: 一道关于C语言循环结构的题目 - ?
韶盼治糜: 第一次循环 z--为3 (z为2) ++x为1 ++x第二次循环 z--为2 (z为1) ++x为2 ++x第三次循环 z--为1 (z为0) ++x为3 ++x第二次循环 z--为0 (z为-1) 逻辑与后半部分不执行 逻辑与为假 循环条件不成立 退出 故输出 : x为 3 y为2 z为-1 答案为B
连城县17795419558: 简单C语言循环语句编程题目! - ?
韶盼治糜: 发一下本人的拙见!(半夜做的也不知道对不!) int peach(int n)//该函数返回桃子总数,n为天数 { if( 10==n ) return 1; else return ( peach(n+1)+ 1) * 2 ; } int main(void) { printf("第%d天的桃子数为: %d\n", 1, peach( 1 ) ); int total=1;//桃子总数 for(int i=10; i>1; i--) { total = (total+1)*2; } printf("桃子的总数为: %d\n", total); return 0; }
连城县17795419558: c语言循环结构例题 - ?
韶盼治糜: 这个搞清楚 行和列和字母的关系就可以,具体假设:第H行有L列字母X,则对应关系是,L=2*H-1 ,X="A"+L-1 (ASC II码值) 至于输出格式,补上对应的空格
连城县17795419558: c语言有关循环的题目 - ?
韶盼治糜: n=0满足条件,while循环会被执行(还没执行) 执行n++ n=1 执行循环(没有语句) n=1 满足条件 循环会被执行(还没执行) 执行n++后变成2 执行循环(没有语句) n=2满足条件 循环会被执行(还没执行) n++ n=3; 执行循环(没有语句) n=3 不满足条件 循环不会被执行 n++ n=4(循环不执行,但是要执行n++) 打印n
连城县17795419558: C语言循环语句里的一道例题 - ?
韶盼治糜: 分别表示 数的阶乘 3!=1*2*3 4!=1*2*3*4