资源描述
下面选项中,不能用作C语言标识符的是( C )。
A._00 B.print C.&b D.FOR
下面合法的标识符是( A )。
A.IF B.-321 C.c f D.int
能够将高级语言编写的源程序转换为目标程序的软件是( D )。
A.汇编程序 B.解释程序 C.编辑程序 D.编译程序
C 语言程序中能够对程序进行注释,注释部分必须用符号( C )括起来。
A.“{”和“}” B.“[”和“]”
C.“/*”和“*/” D.“*/”和“/*”
已经有预处理命令“#include <math.h>”和申明“int x=4, y;”,下面语句中语法正确的是( C )。
A.if(x%2=1)y=x; B.if(sqrt(x)%2)y=x;
C.if(x==1)y=x; D.if(x==1)y=&x;
下列运算符中,优先级最低的是( D )。
A.* B.!= C.+ D.=
逻辑“异或”运算可描述为当且仅当a、b两个操作数中只有一个为真时才为真,其他情况下均为假。下面能够正确表示逻辑“异或”运算的体现式是( D ))。
A.a || b B.a && b
C.(a&&b)&&!(a || b) D.(a || b)&&!(a&&b)
下面有关continue和break语句的论述中正确的是( B )。
A.continue和break语句都能够出目前switch语句中
B.continue和break语句都能够出目前循环语句的循环体中
C.在switch语句允许出现continue和break语句
D.执行循环语句中的continue和break语句都将立即终止循环
在while(e)语句中的e与下面条件体现式等价的是( D )。
A.e==0 B.e==1 C.e!=1 D.e!=0
已经有函数fun的定义“void fun(void) {printf("That's great! ");}”,则调用fun函数的正确形式是( B )。
A.fun; B.fun(); C.fun(void); D.fun(1);
设有下列程序段:
static int y=2;
void f2( )
{ static float d=3; …}
int x=1;
void f1( )
{ int z=3; …}
有关程序段中各变量的属性,下面论述中错误的是( D )。
A.x是全局变量,函数f1能够访问,函数f2不能访问
B.y是全局变量,函数f1和函数f2都能够访问
C.z是动态变量,函数f1可访问,函数f2不可访问
D.d是静态变量,函数f1和函数f2都能够访问
已知某编译系统中singed int类型数据的长度是16位,该类型数据的最大值是( A )。
A.32767 B.32768 C.127 D.65535
设k=7,x=12,则下列体现式值为3的是( D )。
A.x%=(k%=5) B.x%=(k-k%5)
C.x%=k-k%5 D.(x%=k)-(k%=5)
已经有定义“int a[]={5,4,3,2,1},i=4;”,下列对a数组元素的引用中错误的是( B )。
A.a[--i] B.a[a[0]] C.a[2*2] D.a[a[i]]
己有申明“int a=0,b=l,*p,*q;”,下列正确的语句是( C )。
A.a=p; B.b=q; C.p=&a; D.p=&q;
C语言中,结构体类型变量在程序执行期间( A )。
A.所有组员一直驻留在内存中
B.只有一个组员驻留在内存中
C.部提组员驻留在内存中
D.没有组员驻留在内存中
若有定义和申明typedef enum{green, red, yellow, blue, b1ack}color; color flower;,则下列语句中正确的是( B )。
A.green=red; B.flower=red;
C.color=red; D.enum=red;
在文献包括预处理语句#include的使用形式中,当之后的文献名用双引号括起来时,寻找被包括文献的方式是( C )。
A.仅搜索目前目录
B.仅搜索源程序所在的目录
C.先在源程序所在目录搜索,再按系统设定的标准方式搜索
D.直接按系统设定的标准方式搜索目录
已经有定义“int a[2][3]={0}; *p=a[0];”,下面体现式中有语法错误的是( A )。
A.a[0]=1 B.p[0]=1 C.*p=1 D.a[0][0]=1
下面有关C语言数据文献的论述中正确的是( D )。
A.文献由ASCII码字符序列组成,C语言只能读写文本文献
B.文本由二进制数据序列组成,C语言只能读写二进制文献
C.文献由统计序列组成,可按数据的存储形式分为文本文献和二进制文献
D.文献由数据流序列组成,可按数据的存储形式分为文本文献和二进制文献
下面选项中,不能用作C语言标识符的是(C)。
A.FOR B._10 C.&h D.print
下面合法的标识符是(A)。
A.IF B.-412 C.a k D.char
C 语言源程序的三种基本结构是次序结构、(B)结构和循环结构。
A.递归 B.选择 C.转移 D.嵌套
已经有定义“float x=1.23456; int i;”,欲将x中的数值保存小数点后两位,第三位进行四舍五入运算,能实现该功效的体现式是(A)。
A.i=x*100+0.5, x=i/100.0 B.x=(x*100+0.5)/100.0
C.x=((int)x*100+0.5)/l00.0 D.x=(x/100+0.5)/100.0
下面定义符号常量p为3.14中正确的是(D)。
A.#define p 3.14; B.#define p(3.14)
C.#define p=3.14 D.#define p 3.14
体现式 !x 等价于(A)。
A.x==0 B.x==1 C.x != 0 D.x!=1
下面有关if语句和switch语句的论述中错误的是(D)。
A.if语句和switch语句都能够实现算法的选择结构
B.if语句和switch语句都能实现多路(两路以上)选择
C.if语句能够嵌套使用
D.switch语句不能嵌套使用
下面有关循环语句for、while、do_while的论述中正确的是(A)。
A.三种循环语句都也许出现无穷循环
B.三种循环语句中都能够缺省循环终止条件体现式
C.三种循环语句的循环体都最少被无条件地执行一次
D.三种循环语句的循环体都必须放入一对花括号中
在C语言中while和do-while循环的重要区分是(C)。
A.while的循环控制条件比do-while的循环控制条件严格
B.do-while允许从外部转到循环体内
C.do-while的循环体最少无条件执行一次
D.do-while的循环体不能是复合语句
若已定义一个有返回值的函数,则下面有关调用该函数的论述中错误的是(A)。
A.函数调用能够作为一个函数形参
B.函数调用能够出目前体现式中
C.函数调用能够作为一个函数实参
D.函数调用能够作为独立的语句存在
设有下列程序段:
static int y=2;
void f2( )
{ static float d=3; …}
int x=1;
void f1( )
{ int z=3; …}
有关程序段中各变量的属性,下面论述中错误的是(D)。
A.x是全局变量,函数f1能够访问,函数f2不能访问
B.y是全局变量,函数f1和函数f2都能够访问
C.z是动态变量,函数f1可访问,函数f2不可访问
D.d是静态变量,函数f1和函数f2都能够访问
若有代数式,则不正确的C语言体现式是(C)。
A.x/b/c*y*6 B.6*x*y/b/c
C.6*x*y/b*c D.x*y/c/b*6
已经有定义“int i;float f;”,则下面正确的体现式是(D)。
A.(int f)%i B.int(f)%i C.int(f%i) D.(int)f%i
已经有定义“int a[2][3]”,下面选项中(A)正确地引用了数组a中的基本元素。
A.a[1>2][!1] B.a[2][0] C.a[1] D.a
已经有定义“int m=3, c, *a=&m, *b=&c;”,则下列语句中错误的是(C)。
A.a=b=0; B.a=&c, b=a; C.&a=&b; D.*b=*a
定义一个结构体变量时,系统分派给它的内存是(A)。
A.各组员所需内存总和
B.组员中所占内存最多的容量
C.结构中第一个组员所占内存的容量
D.结构中最后一个组员所占内存的容量
已经有枚举类型定义“enum letter{E, F, G=7, H, I};”,下面体现式中除(D)外,其他体现式的机内值均等于10。
A.'\xb'-1 B.F+I C.010+2 D.0xf-3
下面有关宏的论述正确的是(A)。
A.宏定义没有数据类型限制
B.宏名必须用大写字母表示
C.宏定义必须位于源程序中所有语句之前
D.宏调用比函数调用花费时间
设有申明语句“int b[3][3]={1,2,3,4,5,6,7,8,9};”,下面语句中不能输出数组元素b[1][2]的值6的是(C)。
A.printf("%d ",*(*(b+1)+2)) B.printf("%d ",*(&b[2][0]-1));
C.printf("%d ",*(b+1)[2]); D.printf("%d ",*(b[1]+2));
假如要用fopen()函数打开一个新的二进制文献,该文献要既能读也能写,则文献打开方式应为(A)。
A."wb+" B."ab+" C."rb+" D."ab"
下面选项中,不能用作C语言标识符的是(C)。
A.print B.INT C.&a D._02
下面合法的标识符是(A)。
A.FOR B.-523 C.n b D.if
下面论述中正确的是(B)。
A.C程序的基本组成单位是语句
B.简单C语句必须以分号结束
C.C程序中的每一行只能写一条语句
D.C程序必须在一行内写完
用C语言编写的源程序中,(A)是必不可少的。
A.名为main的函数定义 B.#include<stdio.h>
C.变量定义 D.注释部分
C源程序中的命令#include与#define是在(A)阶段被处理的。
A.预处理 B.编译 C.连接 D.执行
已经有定义“int a=3, b=4, c=5;”,则下列体现式中值为0的是(D)。
A.a&&b B.a<=b C.a||b&&c D.!(!c||1)
一元二次方程ax2+bx+c=0有两个相异实根的条件是且b2-4ac>0,下面选项中正确的体现式是(C)。
A.a!=0, b*b-4*a*c>0 B.a!=0||b*b-4*a*c>0
C.a&&b*b-4*a*c>0 D.!a&&b*b-4*a*c>0
下面有关语句的说法中正确的是(B)。
A.while语句的循环体最少会被执行1次
B.do-while语句的循环体最少会被执行1次
C.for语句的循环体最少会被执行1次
D.在C语言中只能用do、do-while或for语句实现循环结构
下面论述中正确的是(C)。
A.break语句只能用于switch语句体中
B.continue语句的作用是:使程序的执行流程跳出包括它的所有循环
C.break语句只能用在循环体内和switch语句体内
D.在循环体内使用break语句和continue语句的作用相同
对于C语言函数,下列论述中正确的是(A)。
A.函数的定义不能嵌套,但函数调用能够嵌套
B.函数的定义能够嵌套,但函数调用不能嵌套
C.函数的定义和调用都不能嵌套
D.函数的定义和调用都能够嵌套
设有下列程序段:
static int y=2;
void f2( )
{ static float d=3; …}
int x=1;
void f1( )
{ int z=3; …}
有关程序段中各变量的属性,下面论述中错误的是(D)。
A.x是全局变量,函数f1能够访问,函数f2不能访问
B.y是全局变量,函数f1和函数f2都能够访问
C.z是动态变量,函数f1可访问,函数f2不可访问
D.d是静态变量,函数f1和函数f2都能够访问
体现式“'A' +4*25.0-'b'”的正确成果是(B)。
A.67 B.67.0 C.不确定 D.67L
存储字符串"\\\'abc\376"需要的字节数是(D)。
A.11 B.13 C.6 D.7
若有数组a和b的申明“static char a[]= "abcdef",b[]={ 'a', 'b', 'c', 'd', 'e', 'f'};”则数组a和数组b的长度分别是(A)。
A.7,6 B.6,7 C.6,6 D.7,7
己有申明“int a[10]={0, 1, 2, 3, 4, 5, 6, 7, 8, 9},*p=a;”,则不能表示数组a中元素的是(D)。
A.*p B.a[6] C.*a D.p[a]
C语言中,下列属于结构类型的是(D)。
A.整型 B.实型 C.指针类型 D.结构体类型
若有枚举类型定义“enum vari{A1, A2, A3, A4=6, A5, A6};”,则枚举常量A2和A6代表的值分别是(B)。
A.1,6 B.1,8 C.2,6 D.2,8
下面论述错误的是(C)。
A.宏替代不占用程序运行时间 B.宏名无类型
C.宏名必须用大写字母表示 D.宏替代只是字符替代
已经有定义“int a[2][3]={1, 2, 3, 4, 5, 6};”,则下列体现式中不能正确引用值为5的数组元素的是(C)。
A.*(a[0]+4) B.*(a[1]+1)
C.*(*(a+3)+1) D.*(*a+4)
若只允许对数据文献abc.txt做一次打开文献操作,修改其中的数据,则打开文献语句应为“fp=fopen("abc.txt",(B));”。
A."w+" B."r+" C."a+" D."r"
如下论述中正确的是
A)程序设计的任务就是编写程序代码并上机调试
B)程序设计的任务就是确定所用数据结构
C)程序设计的任务就是确定所用算法
D)以上三种说法都不完整
如下选项中,能用作用户标识符的是
A)void
B)8_8
C)_0_
D)unsigned
阅读如下程序
#include
main()
{ int case; float printF;
printf(“请输入2个数:”);
scanf(“%d %f”,&case,&pjrintF);
printf(“%d %f\n”,case,printF);
}
该程序编译时产生错误,其犯错原因是
A)定义语句犯错,case是核心字,不能用作用户自定义标识符
B)定义语句犯错,printF不能用作用户自定义标识符
C)定义语句无错,scanf不能作为输入函数使用
D)定义语句无错,printf不能输出case的值
体现式:(int)((double)9/2)-(9)%2的值是
A)0
B)3
C)4
D)5
若有定义语句:int x=10;,则体现式x-=x+x的值为
A)-20
B)-10
C)0
D)10
有如下程序
#include
main()
{ int a=1,b=0;
printf(“%d,”,b=a+b);
printf(“%d\n”,a=2*b);
}
程序运行后的输出成果是
A)0,0
B)1,0
C)3,2
D)1,2
设有定义:int a=1,b=2,c=3;,如下语句中执行效果与其他三个不一样的是
A)if(a>b) c=a,a=b,b=c;
B)if(a>b) {c=a,a=b,b=c;}
C)if(a>b) c=a;a=b;b=c;
D)if(a>b) {c=a;a=b;b=c;}
有如下程序
#include
main()
{ int c=0,k;
for (k=1;k<3;k++)
switch (k)
{ default: c+=k
case 2: c++;break;
case 4: c+=2;break;
}
printf(“%d\n”,c);
}
程序运行后的输出成果是
A)3
B)5
C)7
D)9
如下程序段中,与语句:k=a>b?(b>c?1:0):0;功效相同的是
A)if((a>b)&&(b>c)) k=1;
else k=0;
B)if((a>b)||(b>c) k=1;
else k=0;
C)if(a<=b) k=0;
else if(b<=c) k=1;
D)if(a>b) k=1;
else if(b>c) k=1;
else k=0;
20)有如下程序
#include
main()
{ char s[]={“012xy”};int i,n=0;
for(i=0;s[i]!=0;i++)
if(s[i]>=’a’&&s[i]<=’z’) n++;
printf(“%d\n”,n);
}
程序运行后的输出成果是
A)0
B)2
C)3
D)5
有如下程序
#include
main()
{ int n=2,k=0;
while(k++&&n++>2);
printf(“%d %d\n”,k,n);
}
程序运行后的输出成果是
A)0 2
B)1 3
C)5 7
D)1 2
有如下定义语句,编译时会出现编译错误的是
A)char a=’a’;
B)char a=’\n’;
C)char a=’aa’;
D)char a=’\x2d’;
有如下程序
#include
main()
{ char c1,c2;
c1=’A’+’8’-‘4’;
c2=’A’+’8’-‘5’;
printf(“%c,%d\n”,c1,c2);
}
已知字母A的ASCII码为65,程序运行后的输出成果是
A)E,68
B)D,69
C)E,D
D)输出无定值
有如下程序
#include
void fun(int p)
{ int d=2;
p=d++; printf(“%d”,p);}
main()
{ int a=1;
fun(a); printf(“%d\n”,a);}
程序运行后的输出成果是
A)32
B)12
C)21
D)22
如下函数findmax拟实目前数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功效
#define MIN -
int findmax (int x[],int n)
{ int i,max;
for(i=0;i<N;I++)< p="" />
{ max=MIN;
if(max
return max;
}
导致错误的原因是
A)定义语句int i,max;中max未赋初值
B)赋值语句max=MIN;中,不应给max赋MIN值
C)语句if(max
D)赋值语句max=MIN;放错了位置
有如下程序
#include
main()
{ int m=1,n=2,*p=&m,*q=&n,*r;
r=p;p=q;q=r;
printf(“%d,%d,%d,%d\n”,m,n,*p,*q);
}
程序运行后的输出成果是
A)1,2,1,2
B)1,2,2,1
C)2,1,2,1
D)2,1,1,2
若有定义语句:int a[4][10],*p,*q[4];且0≤i<4,则错误的赋值是
A)p=a
B)q[i]=a[i]
C)p=a[i]
D)p=&a[2][1]
有如下程序
#include
#include
main()
{ char str[ ][20]={“One*World”, “One*Dream!”},*p=str[1];
printf(“%d,”,strlen(p));printf(“%s\n”,p);
}
程序运行后的输出成果是
A)9,One*World
B)9,One*Dream
C)10,One*Dream
D)10,One*World
有如下程序
#include
main()
{ int a[ ]={2,3,5,4},i;
for(i=0;i<4;i++)
switch(i%2)
{ case 0:switch(a[i]%2)
{case 0:a[i]++;break;
case 1:a[i]--;
}break;
case 1:a[i[=0;
}
for(i=0;i<4;i++) printf(“%d”,a[i]); printf(“\n”);
}
A)3 3 4 4
B)2 0 5 0
C)3 0 4 0
D)0 3 0 4
结构化程序设计语言编写的程序由三种结构组成:次序结构、分支结构和 。
一个完整的C程序能够有多个函数,其中有且只能有一个名为 的函数。
数学式所对应的C语言体现式为 (m, 1/3.0)。
在调用函数fopen("d:\\b.dat", "r")时,若d盘根目录下不存在文献b.dat,则函数的返回值是 。
执行下面程序段中的语句“k = A*A+1;”后k的值是 。
#define B 2
#define A B+1
k = A*A+1;
已经有定义“float m;double n;int a;long b;char c;”,则体现式m+n*a/m+b/n+c值的类型为 。
C语言有效的预处理命令总是以 开头。
已经有定义“int a[10], *p=a+3;”,则数组a 的最后一个元素是p[ ]。
已经有定义“int n=12; double a;”,则执行语句“a=n/=5;”后,a的值为 。
若要申明一个类型名STR,使得定义语句STR s等价于char *s,则申明语句是 。
程序设计语言的发展经历了几个阶段:机器语言、汇编语言和 。
一个C程序总是从 函数开始执行的。
已经有定义“double a=5, b=10;”,则计算ab的库函数调用形式是 。
已经有定义“char ch='a';”,则体现式ch=ch-'a'+'A'的值为字符 的编码。
表示“x≥y≥z”的C语言体现式是x>=y 。
C语言有效的预处理命令总是以 开头。
常量'\n'的数据类型是 。
已经有定义“int b[10], *p=b, *q; q=&b[5];”,则体现式q-p的值是 。
在文献中,以符号常量EOF作为文本文献(字符流文献)的结束标识,EOF代表的值是 。
若要申明一个类型名STR,使得定义语句STR s等价于char *s,则申明语句是 。
结构化程序设计语言编写的程序由三种结构组成:次序结构、 和循环结构。
C语言中除复合语句外的其他所有语句都以 结束。
已经有定义“double a=10, b=5;”,则计算ab的库函数调用形式是 。
C语言有效的预处理命令总是以 开头。
已经有定义“char a=1; int b=2; float c=3; double d=4;”,则体现式“c=a+b+c+d”值的类型为 。
用typedef定义一个长度为10的整型数组NUM的语句是 。
执行下面程序段中的语句“k = A*A+1;”后k的值是 。
#define B 2
#define A B+1
k = A*A+2;
已经有定义“int a[][4]={1, 2, 3, 4, 5, 6, 7, 8, 9};”,则数组a第一维的大小是 。
程序中已使用预处理命令“#include<stdio.h>”,为使语句“fp=fopen("asc.txt","r");”能正常执行,在该语句之前必须有定义FILE ;。
执行“printf("%d,%d", a, b, c, d); ”后在屏幕上将输出 个整数。
C语言中除复合语句外的其他所有语句都以( 分号 )结束。
数学式所对应的C语言体现式为pow(m, ( 1/3.0 ))。
判断字符变量c是英文字母的体现式是( c>='a'&&c<='z'|| c>='A'&&c<='Z' )。
一个C程序在运行时,假如没有发生任何异常情况,则只有在执行了( main )函数的最后一条语句或该函数中的return语句后,程序才会终止运行。
已经有定义“int r=3;”,则执行语句
“printf("%d", sizeof(2*3.14159*r));”时输出( 8 )。
若二维数组a有n列,则在存储该数组时,a[i][j]之前有( i*n+j )个数组元素。
已经有定义“char ch1[10]= "abcdef", ch2[10]= "a\\0";”,则执行语句 “printf("%d", strlen(strcpy(ch1, ch2)));”的输出成果是( 3 )。
结构类型的每个组员的数据类型能够是基本数据类型,也能够是( 结构 )类型。
若已经有定义“enum ABC{A, B, C};”,则执行语句“printf("%d\n", A+2);”后输出成果是( 2 )。
已知数据文献abc.dat是通过执行下列程序建立的,若在另一个程序运行时需要从该数据文献中正确读取数据,则正确的读文献库函数的函数名是( fread )。
#include<stdio.h>
int main()
{ FILE *fp = fopen("abc.dat","wb");
float x = 25.0;
fwrite(&x, sizeof(float), 1, fp);
fclose(fp);
return 0;
}
C语言没有提供用于数据输入及输出的语句,所有的输入与输出都是通过系统提供的( )来实现的。
已经有定义“float x=3.14159; int n;”,则计算体现式“n = x*100+0.5, x= n/100.0”后x的值是( )。
已经有定义“char ch; int b;” 执行语句“scanf("%c%d", &ch, &b);”时假如从键盘输入的数据是“110”,则变量b得到的值是( )。
若一个函数不需要形参,则在定义该函数时,应使形式参数表为空或放置一个( )。
若在某个C编译系统中,假如一个变量能正确存储的数据范围为整数-32768~32767,则该变量在内存中占( )字节。
系统库函数scanf和gets在被调用执行时都能够读取从键盘输入的一串数字字符,其中函数( )具备将读取的数字字符串转换为整型数的功效。
已经有定义“int a[3][2]={{6, 5}, {4, 3}, {2, 1}}, *p=a[1];” 则执行语句“printf("%d\n", *(p+2));”后的输出成果是( )。
若程序中已经申明了一个结构类型以及结构变量,则访问该结构变量组员的形式是( )。
若已经有定义“enum ABC{A, B, C};”,则执行语句“printf("%d\n", A+1);”后输出成果是( )。
下列程序段的输出是( )。
char *a[2]={"one", "two"}, **p=a;
printf("%s,", *(p++)+1);
printf("%c\n", **p-1);
结构化程序设计语言编写的程序由三种结构组成:次序结构、分支结构和( 循环结构 )。
已经有定义“double n;”,则数学公式“”对应的C语言体现式是( 3.0/4*n*(4*power(n,2)-1) )。
已经有定义“int m=2,n=3;”,则执行体现式“(m>n)&&(--m>0)”后m的值为( 2 )。
变量的值在函数调用结束后仍然保存,以便下一次调用该函数时使用,能够将局部变量定义为( static )类型。
数学式所对应的C语言体现式为( sqrt(a*a+b*b)/(a+b) )。
若有体现式为 (x) op (y),其中op代表运算符,x、y代表操作数。若op是“+”运算符,且x和y均为常量时,不能同时为( 字符串 )常量。
已经有定义“char *s="%d,%d\n"; int a=2, b=3;”,则语句“printf(s, a, b);”的输出成果是( 2,3 )。
使用sizeof()函数计算结构struct List的长度的体现式是( sizeof(struct List) )。
若已经有定义“enum ABC{A, B, C};”,则执行语句“printf("%d\n", B+1);”后输出成果是( 2 )。
下列程序段的输出是( 7,-13 )。
#define F(x) x - 2
#define D(x) x*F(x)
printf("%d,%d", D(3), D(D(3))) ;
题目:本程序的功效是:以每行5个的格式输出2~之间满足下列条件的数:
(1)该数是素数;
(2)从个位开始依次去掉一位数字后的数仍然是素数。例如,233是素数,23和2仍然是素数,则233满足条件。更正程序中的错误。
注意:不能增加、删除语句,但能够调换语句的位置。
【含有错误的程序代码】
(1)#include<stdio.h>
(2)int prime(int n) /*判断n是否为素数的函数*/
(3){ int i;
(4) for(i=2;i<n-1;i++)
(5) if(n%i==0)
(6) return 0;
(7) return 1;
(8)}
(9)main()
(10){ int m,n,k,flag;
(11) for(n=2;n<;n++)
(12) if(prime(n)) /*若不是素数则判断下一个*/
(13) continue;
(14) else
(15) { m=n;
(16) flag=1; /*标志变量置为1*/
(17) while(m<0)
(18) { m=m/10; /*依次去掉一位数字*/
(19) if(!prime(m))
(20) { flag=0; /*若不是素数标志置为0*/
(21) break;
(22) }
(23) }
(24) if(flag) /*若是素数则输出*/
(25) { printf("\t%d",n);
(26) k++;
(27) if(k%5==0)
(28) printf("\n");
(29) }
(30) }
(31)}
本程序的功效是:输出25至200之间所有能被5整除且最少有一位数字是3的整数。请更正程序中的错误。
注意:不能增加、删除语句,但能够调换语句的位置。
【含有错误的程序代码】
1 #include<stdio.h>
2 void main()
3 {
4 int i,j,n=0,m,k,a[200],b[5];
5 for(i=25;i<=200;i++)
6 if(i%5!=0) /* 判断是否是5的倍数 */
7 { i = m; /* 将判断的数赋给m */
8 j=0;
9 k=0;
10 do
11 { b[j]=m%10;
12 m/=10;
13 if(b[j]==3)
14 k++;
15 j++;
16 }while(m<0);
17 if(k>0)
18 a[n++]=i;
19 }
20 for(i=0;i<n;i++)
21 printf("%4d",a[i]);
22 }
题目:下面程序的功效是:由键盘输入任意字母数字串number345reverse,将其中字母直接输出,数字逆序输出。更正程序中的错误。
注意:不能增加、删除语句,但能够调换语句的位置。
【含有错误的程序代码】
(1) #include<stdio.h>
(2) main()
(3) {
(4) char ch;
(5) long m,n,nx=0; /*定义变量并赋初值*/
(6) while(ch=getchar()!='\n')
(7) {
(8) if(ch>='0'&&ch<='9') /*判断是否为数字*/
(9) m=m*10+ch-0; /*生成数字*/
(10) else
(11) putchar(ch); /*输出非数字*/
(12) }
(13) n=m;
(14) while(n!=0) /*数字逆序*/
(15) {
(16) nx=nx*10+m%10;
(17) m=m/10;
(18)
展开阅读全文