【www.gbppp.com--减肥方法】
1. 以下叙述中错误的是( )。
A) 使用三种基本结构构成的程序只能解决简单问题
B) 结构化程序由顺序、分支、循环三种基本结构组成
C) C语言是一种结构化程序设计语言
D) 结构化程序设计提倡模块化的设计方法
参考答案:A
【解析】使用顺序,选择(分支),循环三种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所以A)错误。
2. 以下关于结构化程序设计的叙述中正确的是
A) 结构化程序使用goto语句会很便捷
B) 在C语言中,程序的模块化是利用函数实现的
C) 一个结构化程序必须同时由顺序、分支、循环三种结构组成
D) 由三种基本结构构成的程序只能解决小规模的问题
参考答案:B
【解析】滥用goto语句将使程序的流程毫无规律,可读性差,对于初学者来说尽量不要使用,所以A错误。一个结构化程序可以包含顺序、分支、循环结构中的一种或多种,所以C错误。由三种基本结构构成的程序可以解决任何复杂的问题,所以D错误。
3. 计算机能直接执行的程序是
A) 源程序
B) 目标程序
C) 汇编程序
D) 可执行程序
参考答案:D
【解析】计算机能直接执行的程序是二进制的可执行程序,扩展名为.exe。所以选择D选项。
4. 以下选项中关于程序模块化的叙述错误的是
A) 可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序
B) 把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块
C) 把程序分成若干相对独立的模块,可便于编码和调试
D) 可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序
参考答案:A
【解析】程序模块化思想中,可以采用自顶向下、逐步细化的方法。所以选项A中"自底向上"的说法是错误的。
5. 关于算法,以下叙述中错误的是
A) 某个算法可能会没有输入
B) 某个算法可能会没有输入
C) 一个算法对于某个输入的循环次数是可以事先估计出来的
D) 任何算法都能转换成计算机高级语言的程序,并在有限时间内运行完毕
参考答案:D
【解析】算法的特征:①有穷性。一个算法(对任何合法的输入)在执行有穷步后能够结束,并且在有限的时间内完成。②确定性。算法中的每一步都有确切的含义。③可行性。算法中的操作能够用已经实现的基本运算执行有限次来实现。④输入:一个算法有零个或者多个输入,零个输入就是算法本身确定了初始条件。⑤输出:一个算法有一个或者多个输出,以反映出数据加工的结果。所以选择D选项。
6. C语言程序的模块化通过以下哪个选项来实现
A) 变量
B) 函数
C) 程序行
D) 语句
参考答案:B
【解析】C语言程序的模块化通过函数来体现,所以选择B。
7. 以下不能用于描述算法的是
A) 文字叙述
B) 程序语句
C) 伪代码和流程图
D) E-R图
参考答案:D
【解析】算法的描述有伪代码、流程图、N-S结构图等。E-R是实体联系模型。所以选择D。
8. 以下叙述中正确的是
A) 程序必须包含所有三种基本结构才能成为一种算法
B) 我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令
C) 如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达
D) 只有简单算法才能在有限的操作步骤之后结束
参考答案:B
【解析】C语言程序可以不包含三种基本结构,也可以包含其中的一种或多种,所以A错误。三种基本结构可以表示任何复杂的算法,所以C错误。正确的算法,不管是简单算法还是复杂算法都可以在有限的操作步骤之后结束,这是算法的有穷性,所以D错误。
9. 以下叙述中正确的是
A) 在算法设计时,可以把复杂任务分解成一些简单的子任务
B) 在C语言程序设计中,所有函数必须保存在一个源文件中
C) 只要包含了三种基本结构的算法就是结构化程序
D) 结构化程序必须包含所有的三种基本结构,缺一不可
参考答案:A
【解析】C语言的程序中,函数不一定都放在同一个源文件中,可以分别放在不同源文件中,通过#include命令来引用,所以B错误。结构化程序可以包含三种基本结构中的一种或几种,所以C,D错误。
10. C语言主要是借助以下哪种手段来实现程序模块化
A) 定义函数
B) 定义常量和外部变量
C) 使用丰富的数据类型
D) 使用三种基本结构语句
参考答案:A
【解析】C语言程序的模块化通过函数来体现,所以选择A。
11. 下列叙述中错误的是( )。
A) C程序可以由多个程序文件组成
B) 一个C语言程序只能实现一种算法
C) C程序可以由一个或多个函数组成
D) 一个C函数可以单独作为一个C程序文件存在
参考答案:B
【解析】在一个C语言程序中可以进行多种算法的实现,对算法的个数没有规定,所以B)错误。
1.以下四个程序中,完全正确的是( )。
A) #include <stdio.h>
main();
{/*/ programming /*/
printf("programming!\n");}
B) #include <stdio.h>
main()
{/* programming */
printf("programming!\n"); }
C) #include <stdio.h>
main()
{/*/* programming */*/
printf("programming!\n"); }
D) include <stdio.h>
main()
{/* programming */
printf("programming!\n"); }
参考答案:B
【解析】C语言中注释语句的注释方法是: /* 注释内容 */ 或 //注释一行。所以A)与C)错误,
D)选项中预编译命令include<stdio.h>前丢掉了"#"号。所以选择B)。
2.对于一个正常运行的C程序,以下叙述中正确的是
A) 程序的执行总是从main函数开始,在程序的最后一个函数中结束
B) 程序的执行总是从程序的第一个函数开始, 在main函数结束
C) 程序的执行总是从main函数开始
D) 程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束
参考答案:C
【解析】任何一个C程序都是从主函数main开始,至主函数main结束,所以选择C选项
3.以下叙述中正确的是
A) C语言规定必须用main作为主函数名,程序将从此开始执行
B) 可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C) C语言程序将从源程序中第一个函数开始执行
D) main的各种大小写拼写形式都可以作为主函数名,如:MAIN,Main等
参考答案:A
【解析】C语言中的主函数唯一为main()函数不能任意指定,所以B选项错误。C语言从主函数main()开始,到主函数main()结束,所以C选项错误。主函数必须写成小写的main,不能混淆大小写,所以D
选项错误。
4. 以下叙述中错误的是
A) 算法正确的程序可以有零个输入
B) 算法正确的程序最终一定会结束
C) 算法正确的程序可以有零个输出
D) 算法正确的程序对于相同的输入一定有相同的结果
参考答案:C
【解析】算法的特征:①有穷性。一个算法(对任何合法的输入)在执行有穷步后能够结束,并且在有限的时间内完成。②确定性。算法中的每一步都有确切的含义。③可行性。算法中的操作能够用已经实现的基本运算执行有限次来实现。④输入:一个算法有零个或者多个输入,零个输入就是算法本身确定了初始条件。⑤输出:一个算法有一个或者多个输出,以反映出数据加工的结果。所以C选项错误。
5.以下叙述中正确的是
A) C语句必须在一行内写完
B) C程序中的每一行只能写一条语句
C) C语言程序中的注释必须与语句写在同一行【c???】
D) 简单C语句必须以分号结束
参考答案:D
【解析】C语句可以跨行来写,但是必须以分号结束,所以A选项错误。C程序中的一行可以有多条语句,所以B选项错误。C语言中的注释语句可以与原语句放在一行也可以不放在一行,所以C选项错误。
6. 以下叙述中正确的是
A) 用C语言编写的程序只能放在一个程序文件中
B) C程序书写格式严格,要求一行内只能写一个语句
C) C程序中的注释只能出现在程序的开始位置和语句的后面
D) C程序书写格式自由,一个语句可以写在多行上
参考答案:D
【解析】C语言编写的程序可以放置于多个程序文件中,所以A错误。C程序中的一行可以有多条语
1.开学第一考
问题描述
开学的第一个周末,像往届一样,新生都会参加英语分级考试。所谓英语分级考试就是为了测试一下新生的英语水平,并将他们分成1~4,4个等级。分级规则如下:95分(含95分)以上为level4,只需修一个学期的大学英语;85分(含85分)至95分为level3,需修大学英语两个学期;75分(含75分)至85分为level2,需修3个学期的大学英语;剩下的为level1,对不起,就只能修4个学期的大学英语了。小明是刚12级计算机系的新生,他不小心知道了自己的分级考试成绩,于是乎他就迫切的想知道自己会被分在哪一个level,这不,就麻烦一下新生中大神小强,写一个小程序来判定一下小明会被分在哪一个level吧!
输入格式
输入一个整数代表小明的分数
输出格式
输出小明被分在哪一个英语等级,level1、level2、level3、level4,如果分数不在[0,100]区间内,输出“Error!”(注意:不输出引号) 样例输入
60
101
样例输出
level1
Error!
解答:
#include <stdio.h>
int main()
{
int a;
scanf("%d",&a);
if(a>100)
printf("Error!\n");
else if(a>=95)
printf("level4\n");
else if(a>=85)
printf("level3\n");
else if(a>=75)
printf("level2\n");
else if(a>=0)
printf("level1\n");
else printf("Error!\n");
return 0; }
2.小明的考题1——分段函数
问题描述 小明是一个数学狂,自吹自擂说自己的数学是如何如何的好,但是他的风头却被大神小强抢光了,小明就很郁闷,自言自语了一句:不就是编程牛逼点嘛,有本事编几个程序出来解解数学题啊。运气挺背的是,小强就在他后面,不小
心就听到了„„小强倒是很大方的说:要不你就出几个题考考我?小明这下就得瑟了,呵,小样,看我不整死你!因为小明不知大神的底,于是乎第一题就出了一个简单的分段函数题:
输入格式 输入仅包含一个整数x,并且-100 <= x <= 100
输出格式
输出仅一个整数,表示函数值f(x) 样例输入
-10
样例输出
-440
解答
#include <stdio.h>
int main()
{
int x,g,f; scanf("%d",&x); g=x*x-550; if(x<g) f=g+x+4; else f=g-x; printf("%d\n",f);
} return 0; 3.小明的考题2——数与单词
问题描述
上一道分段函数的题目被小强轻松秒杀了,这一次,小明知道该出有深度一点的题目了。“数学是科学之王”,小明对此坚信不疑!数学的强悍之处在于它能通过一种映射的关系,把两种不相关的东西联系在一起。现在,小明想考小强的是,小强需要建立起阿拉伯数字与英文字母的对应关系,小明不想过于为难小强,就限制了一下定义域为0—9的10个数字,映射规则为:0—zero、1—one、„、9—nine,现在小明随便说一个0—9的数字,小强的程序能后输出该数字对应的英文单词。
输入格式
输入数据为一个[0,9]区间的整数
输出格式
输出该数字对应的英文单词
样例输入
8
样例输出
eight
解答
#include<stdio.h>
int main()
{
int x; scanf("%d",&x); if(x==0)
printf("zero\n");
else if(x==1)
printf("one\n");
else if(x==2)
printf("two\n");
else if(x==3)
printf("three\n");
else if(x==4)
printf("four\n");
else if(x==5)
printf("five\n");
else if(x==6)
printf("six\n");
else if(x==7)
printf("seven\n");
else if(x==8)
printf("eight\n");
else if(x==9)
printf("nine\n");
} return 0;
4.小明的考题3——必杀技
问题描述
小明为了这最后一题煞费苦心,不过他还是没有什么头绪。这天,他去宿舍楼下的邮局给高中的那群哥们姐妹寄几张咱厦大魅力风光的明信片。抬头的时候瞥了一眼墙上挂着的信函资费说明,详情如下:
平信分本埠和外埠,按首重和续重计收资费,首重100克以内,每重20克(不足20克按20克计算)本埠0.80元,外埠1.20元。续重101~2000克,每重100克(不足100克按100克计算)本埠1.20元,外埠2.00元。 这下,小明可就有主意了。他就用这个信函的资费考考小强。
输入格式
输入两个整数k w,以空格隔开。(k=1 or k=2,k=1代表本埠,k=2代表外埠。w代表信函重量,单位g ,已知0<w<=2000)
输出格式
输出资费,结果保留两位小数。
样例输入
1 95
样例输出
4.00
解答
#include<stdio.h>
int main()
{
int k,w;
double s;
scanf("%d%d",&k,&w);
if(k==1)
if(w<=100)
{if(w%20)
s=(w/20+1)*0.8;
else s=w/20*0.8; }
1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/
#include "stdio.h"
main()
{int i,j,result;
for (i=1;i<10;i++)
{ for(j=1;j<10;j++)
{ result=i*j;
printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/
}
printf("\n");/*每一行后换行*/
}
}
2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
兔子的规律为数列1,1,2,3,5,8,13,21....*/
main()
{ long f1,f2;
int i;
f1=f2=1;
for(i=1;i<=20;i++)
{ printf("%12ld %12ld",f1,f2);
if(i%2==0) printf("\n");/*控制输出,每行四个*/
f1=f1+f2; /*前两个月加起来赋值给第三个月*/
f2=f1+f2; /*前两个月加起来赋值给第三个月*/
}
}
3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。*/
#include "math.h"
main()
{ int m,i,k,h=0,leap=1;
printf("\n");
for(m=101;m<=200;m++)
{ k=sqrt(m+1);
for(i=2;i<=k;i++)
if(m%i==0)
{leap=0;break;}
if(leap) /*内循环结束后,leap依然为1,则m是素数*/
{printf("%-4d",m);h++;
if(h%10==0)
printf("\n");
}
leap=1;
}
printf("\nThe total is %d",h);
}
4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程 找出1000以内的所有完数。*/
main()
{ static int k[10];
int i,j,n,s;
for(j=2;j<1000;j++)
{ n=-1;
s=j;
for(i=1;i<j;i++)
{if((j%i)==0)
{ n++;
s=s-i;
k[n]=i;
}
}
if(s==0)
{printf("%d is a wanshu: ",j);
for(i=0;i<n;i++)
printf("%d,",k[i]);
printf("%d\n",k[n]);
}
}
}
5、/*下面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出,
请在空白处完善程序。*/
main()
{ int a[4][4],b[4][4],i,j; /*a存放原始数组数据,b存放旋转后数组数据*/
printf("input 16 numbers: ");/*输入一组数据存放到数组a中,然后旋转存放到b数组中*/ for(i=0;i<4;i++)
for(j=0;j<4;j++)
{ scanf("%d",&a[i][j]);
b[3-j][i]=a[i][j];
}
printf("array b:\n");
for(i=0;i<4;i++)
{ for(j=0;j<4;j++)
printf("%6d",b[i][j]);
printf("\n");
}
}
6、/*编程打印直角杨辉三角形*/
main()
{int i,j,a[6][6];
for(i=0;i<=5;i++)
{a[i][i]=1;a[i][0]=1;}
for(i=2;i<=5;i++)
for(j=1;j<=i-1;j++)
a[i][j]=a[i-1][j]+a[i-1][j-1];
for(i=0;i<=5;i++)
{for(j=0;j<=i;j++)
printf("%4d",a[i][j]);
printf("\n");}
}
7、/*通过键盘输入3名学生4门课程的成绩,
分别求每个学生的平均成绩和每门课程的平均成绩。
要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车 其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。*/
#include <stdio.h>
#include <stdlib.h>
main()
{ float a[4][5],sum1,sum2;
int i,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%f",&a[i][j]);
for(i=0;i<3;i++)
{ sum1=0;
for(j=0;j<4;j++)
sum1+=a[i][j];
a[i][4]=sum1/4;
}
for(j=0;j<5;j++)
{ sum2=0;
for(i=0;i<3;i++)
sum2+=a[i][j];
a[3][j]=sum2/3;
}
for(i=0;i<4;i++)
{ for(j=0;j<5;j++)
printf("%6.2f",a[i][j]);
printf("\n");
}
}
8、/*完善程序,实现将输入的字符串反序输出,
如输入windows 输出swodniw。*/
#include <string.h>
main()
{ char c[200],c1;
int i,j,k;
printf("Enter a string: ");
scanf("%s",c);
k=strlen(c);
for (i=0,j=k-1;i<k/2;i++,j--)
{ c1=c[i];c[i]=c[j];c[j]=c1; }
printf("%s\n",c);
}
指针法:
void invert(char *s)
{int i,j,k;
char t;
k=strlen(s);
for(i=0,j=k-1;i<k/2;i++,j--)
{ t=*(s+i); *(s+i)=*(s+j); *(s+j)=t; }
}
main()
{ FILE *fp;
char str[200],*p,i,j;
if((fp=fopen("p9_2.out","w"))==NULL)
{ printf("cannot open the file\n");
exit(0);
}
printf("input str:\n");
gets(str);
printf(“\n%s”,str);
fprintf(fp,“%s”,str);
invert(str);
printf(“\n%s”,str);
fprintf(fp,“\n%s”,str);
fclose(fp);
}
9、/*下面程序的功能是从字符数组s中删除存放在c中的字符。*/
#include <stdio.h>
main()
{ char s[80],c;
int j,k;
printf("\nEnter a string: ");
gets(s);
printf("\nEnter a character: ");
c=getchar( );
for(j=k=0;s[j]!= '\0';j++)
if(s[j]!=c)
s[k++]=s[j];
s[k]= '\0';
printf("\n%s",s);
}
10、/*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小
排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中*/ #include<stdio.h>
void sort(int *x,int n)
{ int i,j,k,t;
for(i=0;i<n-1;i++)
{ k=i;
for(j=i+1;j<n;j++)
if(x[j]>x[k]) k=j;
if(k!=i)
{ t=x[i];
x[i]=x[k];
x[k]=t;
}
}
}
void main()
{FILE *fp;
int *p,i,a[10];
fp=fopen("p9_1.out","w");
p=a;
printf("Input 10 numbers:");
for(i=0;i<10;i++)
scanf("%d",p++);
p=a;
sort(p,10);
for(;p<a+10;p++)
{ printf("%d ",*p);
fprintf(fp,"%d ",*p); }
system("pause");
fclose(fp);
}
11、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/
:“8.3写一个判断素数的函数”一题中的一个错误已经修改。调用函数中的return语句应当是“return t”。
1.5请参照本章例题,编写一个C程序,输出以下信息:
**************************
Very Good!
**************************
解:
mian()
,printf(“**************************”);
printf(“\n”);
printf(“Very Good!\n”);
printf(“\n”);
printf(“**************************”);
}
1.6 编写一个程序,输入a、b、c三个值,输出其中
本文来源:http://www.gbppp.com/sh/467041/
推荐访问:马桶c c语言