当前位置:首页 » 编程语言 » 巴中c语言少儿编程模拟题
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

巴中c语言少儿编程模拟题

发布时间: 2023-02-01 00:55:13

c语言模拟题

一.选择题:
1.B 2.D 3.A 4.B 5.D 6.B 7.B 8.A
二.读程序:
1. 67,D 2. 3 3. 3 4. 3

❷ c语言模拟编程题

你大几了?大一吗?

❸ C语言 普及组的模拟题

一、选择题(共20题,每题1.5分,共计30分。每题有5个备选答案,前10个题为单选题,即
每题有且只有一个正确答案,选对得分;后10题为不定项选择题,即每题有1至5个正确答案,只
有全部选对才得分)。
1.微型计算机的性能主要取决于( )。
A)内存 B)主板 C)中央处理器 D)硬盘 E)显示器

2. 128KB的存储器用十六进制表示,它的最大的地址码是( )
A)10000 B)EFFF C)1FFFF D)FFFFF E)FFFF

3.能将高级语言程序转换为目标程序的是( ).
A)调试程序 B)解释程序 C)编辑程序 D)编译程序 E)连接程序

4.A=11001010B,B=00001111B,C=01011100B,则A∨B∧C=( )B
A)01011110 B)00001111 C)01011100 D)11001110 E)11001010

5.计算机病毒传染的必要条件是( ) 。
A)在内存中运行病毒程序
B)对磁盘进行读写操作
C)在内存中运行含有病毒的可执行程序
D)复制文件
E)删除文件

6. TCP/IP协议共有( )层协议
A)3 B)4 C)5 D)6 E)7

7.192.168.0.1是属于( ).
A)A类地址 B)B类地址 B)C类地址 D)D类地址 E)E类地址

8.对给定的整数序列(54,73,21,35,67,78,63,24,89)进行从小到大的排序时,采用快速排序的第
一趟扫描的结果是( ).
A)(24,21,35,54,67, 78,63,73,89)
B)(24,35,21,54,67, 78,63,73,89)
C)(24,21,35,54,67, 63,73,78,89)
D)(21,24,35,54,63, 67,73,78,89)
E)(24,21,35,54,67, 63,73,78,89)

9.一棵n个结点的完全二叉树,则二叉树的高度h为( ).
A)n/2 B)log2n C)(log2n)/2 D) [log2n]+1 E)2n-1

10.下图对该图进行广度优先拓朴排序得到的顶点序列正确的是( ).
A)1,2,3,4,5,6
B)1,3,2,4,5,6
C)1,3,2,4,6,5
D)1,2,3,4,6,5,
E)1,3,2,4,5,6

11.下列属于冯.诺依曼计算机模型的核心思想是( ).
A)采用二进制表示数据和指令;
B)采用”存储程序”工作方式
C)计算机硬件有五大部件(运算器、控制器、存储器、输入和输出设备)
D)结构化程序设计方法
E)计算机软件只有系统软件

12.下列属于输入设备的是( ).
A)打印机 B)扫描仪 C)光笔 D)鼠标 E)显示器

13.算式(1000)10-(100)16-(10)8的结果是( ).
A)(890)10 B)(986)8 C)(1011100000)2 D)(2E0)16 E)(736)10

14.下面关于算法的正确的说法是( )
A)算法必须有输出
B)算法必须在计算机上用某种语言实现
C)算法不一定有输入
D)算法必须在有限步执行后能结束
E)算法的每一步骤必须有确切的定义

15.下列关于十进制数100的正确说法是( ).
A)原码为01100100B
B)反码为64H
C)反码为9BH
D)补码为64H
E)补码为9BH

16.关于windows系统中的窗口和对话框的说法正确的是( ).
A)对话框能移动和改变大小
B)窗口能移动和改变大小
C)对话框只能移动和但不能改变大小
D)对话框不能移动但能改变大小
E)窗口能移动和但不能改变大小

17.下列逻辑运算正确的是( )。
A) A·(A + B )= A
B) A +(A·B)= A
C) A·(B + C )= A·B + A·C
D) A +(B·C)=(A + B)·(A + C)
E) A+1=A

18.下列关于排序说法正确的是( ).
A)插入排序、冒泡排序是稳定的
B)选择排序的时间复杂性为O(n2)
C)选择排序、希尔排序、快速排序、堆排序是不稳定的
D)希尔排序、快速排序、堆排序的时间复杂性为O(nlog2n)
E)快速排序是速度最快的排序

19.对于一个大小为3的栈,若输入队列为123456,则下列输出队列有可能的是( )。
A)123456 B)654321 C)432165 D)431256 E)321654

20. 设有一个含有13个元素的Hash表(0~12),Hash函数是:H(key)=key % 13,其中% 是求余数
运算。用二次探查法解决冲突,则对于序列(8、31、20、33、18、53、27),则下列说法正确
的是( ) 。
A)27在1号格子中
B)33在6号格子中
C)31在5号格子中
D)20在7号格子中
E)18在4号格子中

二.问题求解(5分*2=10分)
1.一个商场有m种颜色的小球,每种小球足够多,在这m种小球中挑选n个小球的选法有多少种?
如 m=2,n=3 时有4种选法分别是:两种小球的个数分别为03,12,21,30.问:当m=4,n=4时
选法数=__________。

2.如果一棵m度树中有n1个度为1的结点,n2个度为2的结点,…….有
nm个度为m的结点,则该树中叶结点的的个数=______________.
1、C语言中没有逻辑量,在给出逻辑运算结果时,以 代表“真”,用 代表“假”。
2、一个C源程序中至少应包括一个 。
3、C源程序的基本单位是 。
4、为表示关系X≥Y≥Z,应使用C语言表达式 。
5、若有以下定义:double w[10];则w数组元素下标的上限是 ,下限是 。
6、若有以下定义:double w[5];则数组w下标的上限是 。
7、执行语句:for(i=1;i++<4;)后;变量i的值是 。
6、在C语言中的实型变量分为两种类型,它们是 、 。
7、语句"printf("%x,%o",16,12);"的输出结果是 。
8、当a=5,b=4,c=1时,表达式a>b!=c的值是 。
9、若有定义:char c=’\010’;则变量c中包含的字符数为 。
10、C语言中的标识符只能由三种字符组成,它们是 、 、 。
11、若k为int 型且赋值11。请写出运算k++后表达式的值为 ,变量的值为 。
12、在C语言程序中,如果对函数f的类型未加显说明,则函数f的隐含类型是 。
13、二维数组中元素在内存中的存放顺序是 。
14、设有定义int a=12,b=12;则语句 printf("%d %d\n",--a,++b);的输出结果是:

15、当a=3,b=2,c=1时,表达式f=a>b>c的值为______________________。
16、C语言中的文件类型有 、 。
二、选择题
1、C语言可执行程序的开始执行点是( )
A、 程序中第一条可执行语言 B、 程序中第一个函数
C、 程序中的main函数 D、 包含文件中的第一个函数
2、以下叙述中不正确的是( )
A、在函数中,通过return语句传回函数值
B、在函数中,可以有多条return语句
C、在C中,main后的一对圆括号中也可以带有形参
D、在C中,调用函数,必需在一条独立的语句中完成
3、对C程序在作逻辑运算时判断操作数真、假的表述,下列哪一个是正确的( )。
A、0为假,非0为真 B、只有1为真
C、-1为假,1为真 C、0为真,非0为假
4、以下字符中,不正确的C语言转义字符是( )
A、‘\t’ B、 ‘\011’ C、‘\n’ D、 ‘\018
5、C语言中运算对象必需是整型的运算符是( )
A、% B、/ C、! D、**
6、putchar函数可以向终端输出一个( )
A、整型变量表达式值 B、实型变量值
C、字符串 D、字符或字符型变量值
7、下列各语句定义了数组,其中哪一个是正确的( )。
A、int a[5],b[2,3]; B、char no(30);
C、int x[]; D、int x[5]={1,2,3};
8、数组定义为"int a[4][5];", 引用"*(a+1)+2"表示( )。
A、a[1][0]+2 B、 a数组第1行第2列元素的地址
C、a[0][1]+2 D、 a数组第1行第2列元素的值
9、a是int类型变量,c是字符变量。下列输入语句中哪一个是错误的( )。
A、scanf ("%d, %c",&a, &c); B、scanf (" %d%c", a, c);
C、scanf (" %d%c", &a,&c ); D、scanf ( "d=% d, c=%c",&a, &c);
10、将整型变量a、b中的较小值为变量c赋值,下列语句中正确的是( )。
A、c= =(a<b)? a:b; B、c=if(a<b)a else b;
C、c=(a<b)? a:b; D、(a<b)? c=a:c=b;
11、将整型变量a、b中的较大值为变量c赋值,下列语句中正确的是( )。
A、c= =(a>b)? a:b; B、c=(a>b)? a:b;
C、c=if(a>b)a else b; D、(a>b)? c=a:c=b;
12、逻辑运算符中,运算优先级按从高到低依次为( )。
A、&&, !, || B、||,&&, ! C、&&, ||, ! D、!,&&, ||
13、在C语言程序中( )
A、 函数的定义可以嵌套,但函数的调用不可以嵌套
B、 函数的定义和函数的调用均不可以嵌套
C、 函数的定义不可以嵌套,但函数的调用可以嵌套
D、 函数的定义和函数的调用均可以嵌套
14、C语言中的文件类型只有( )
A、索引文件和文本文件两种 B、ASCII文件和二进制文件两种
C、文本文件一种 D、 二进制文件一种
15、若变量已正确定义并赋值,符合C语言语法的表达式是( )
A、a=7+b+c,a++ B、a=a+7; C、int(12.3%4) D、a=a+7=c+b
16、设有int a[ ]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是 ( )
A.10,11,12 B.11,12,12 C.10,12,12 D.11,11,12
17、已知ch是字符型变量,下面正确的赋值语句是( )
A、ch=’\123’ B、ch=’xfff’ C、ch=’\08’ D、ch=’\’
18、以下函数调用语句中,含有的实参个数是( )
A、1 B、2 C、4 D、5
Func((exp1,exp2),(exp3,exp4,exp5));
19、以下叙述中正确的是 ( )
A、 输入项可以是一个实型常量,如 scanf("%f ",3.5);
B、 只有格式控制,没有输入项,也能正确输入数据到内存,如: scanf("a=%d,b=%d");
C、 当输入一个实型数据时,格式控制可以规定小数点后的位数,如:scanf("%4.2f",&f);
D、 当输入数据时,必须指明变量地址,例如: scanf("%f",&f);
20、程序运行输出了错误的结果,可以排除下列哪一个因素( )。
A.算法错误 B、运行时输入数据错误
C、未通过编译 D、系统资源配置不当
21、要为字符型变量a赋初值,下列语句中哪一个是正确的( )。
A、char a=’3’; B、char a="3";
C、char a=%; D、char a=*;
22、数组定义为"int a[4][5];", 引用"a[1]+3"表示( )。
A、a数组第1行第3列元素的地址 B、a数组第1行第3列元素的值
C、a数组第4行的首地址 D、a数组第4列的首地址

三、程序阅读
1、以下程序的输出结果为 。
main()
{ int x=2;
while (x--);
printf(“%d\n”,x);
}
2、以下程序的运行结果是 。
main()
{ int m=5;
if (m++ > 5) printf(“%d\n”,m);
else printf(“%d\n”, m――);
}
3、当执行以下程序段后,i的值为 、j的值为 、k的值为 。
int a,b,c,d,i,j,k;
a=10; b=c=d=5; i=j=k=0;
for( ; a>b; ++b) i++;
while (a>++c) j++;
do k++; while (a>d++);
4、以下程序的输出结果是 。
main()
{ int k=2,m=4,n=6;
int *pk=&k, *pm=&m, *p;
*(p=&n)=*pk*(*pm);
printf(“%d\n”,n);
}
5、以下程序的输出结果是 。
fun1(int a, int b)
{ int c;
a+=a; b+=b;
c=fun2 ( a, b );
return c*c;
}
fun2( int a, int b)
{ int c;
c=a*b%3;
return c;
}
main()
{ int x=11,y=19;
printf(“%d\n”, fun1(x,y));
}
6、以下程序的输出结果是 z= , r= 。
func(int a, int b)
{ int c;
c=a+b;
return c;
}
main()
{ int x=6,y=7,z=8,r;
r=func((x--,y++,x+y),z--);
printf(“z=%d,r=%d\n”,z,r);
}
7、以下程序的输出结果为 .
main()
{ int aa[3][3]={{2},{4},{6}},i,*p=&aa[0][0];
for(i=0;i<2;i++)
{ if(i==0)
aa[i][i+1]=*p+1;
else ++p;
printf(“%d”,*p);
}
printf(“\n”);
}
8、下列程序运行的输出结果: , 。
#define X 5
#define Y X+1
#define Z Y*X/2
main()
{ int a;
a=Y;
printf("%d,%d\n",Z,--a);
}
四、程序填空
findmax返回数组s中最大元素的下标,数组中元素的个数由t传入,请填空 。
findmax(int s[ ], int t)
{ int k,p;
for(p=0, k=p; p<t; p++)
if (s[p]>s[k]) ;
return ;
}
有以下程序段:
s=1.0;
for (k=1; k<=n; k++) s=s+1.0/(k*(k+1));
printf(“%f\n”,s);
请填空,使下面的程序段的功能完全与之等同。
s=0.0;
;
k=0;
do
{ s=s+d;
;
d=1.0/(k*(k+1));
}
while( );
printf(“%f\n”,s);
3、 以下程序统计从终端输入的字符中每个大写字母的个数,4、 num[0]中统计字母A的个数,5、 其他依次类推。用回车符结束输入,6、 请填空。
#include “stdio.h”
#include “ctype.h”
main()
{ int num[26]={0}, i ;
char c;
while(( )!=’\n’)
if (isupper(c)) num[ ]+=1;
for( i=0; i<26; i++)
if (num[i]) printf(“%c: %d\n”, i+’A’,num[i]);
}
4、以下fun函数的功能是将一个字符串的内容颠倒过来,请填空。
#include “string.h”
void fun(char str[])
{ int i,j,k;
for(i=0,j= ; i<j; i++, )
{ k=str[i]; str[i]=str[j]; str[j]=k; }
}

5、以下程序的功能是:从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空。
main()
{ float x,amax,amin;
scanf(“%f”,&x);
amax=x; amin=x;
while( )
{ if ( x>amax ) amax=x;
else if (x<amin) ;
;
}
printf(“\namax=%f\namin=%f\n”,amax,amin);
}
6、输入若干字符,分别统计数字字符的个数、英文字母的个数,当输入换行符时输出统计结果,运行结束。
#include <stdio.h>
void main()
{ char ch; ;
while(( )!='\n')
{if(ch>='0'&&ch<='9') s1++;
if((ch>='a' && ch<='z')|| ) s2++;}
printf(“%d,%d\n”,s1,s2);
}
编程题
输入一行数字字符(以回车符结束输入),请用数组元素作为计数器来统计每个数字字符的个数,并输出统计结果。用下标为0的元素统计字符’0’的个数,下标为1的元素统计字符’1’的个数,…。
#include<stdio.h>
main()
{
}
2、下面findmax函数将计算数组中的最大元素及其下标值和地址值,请编写*findmax()函数。
#include<stdio.h>
*findmax(int *s, int t, int *k)
{
}
main()
{ int a[10]={12,23,34,45,56,67,78,89,11,22},k,*add;
add=findmax(a,10,&k);
printf(“%d,%d,%o\n”,a[k],k,add);
}
3、编写程序,求1-3+5-7+…-99+101的值。
#include <stdio.h>
main()
{ }
4、以下程序将字符串中的第m个字符开始的全部字符复制成另一个字符串,在主函数中输入字符串及m的值并输出复制结果,在被调用函数str中完成复制。请编写str函数。
#include<stdio.h>
#include<string.h>
main()
{ int m;
char str1[80], str2[80];
printf(“Please input a string :\n”);
gets(str2);
printf(“Input m:\n”);
scanf(“%d”,&m);
if (strlen(str2)<m ) printf(“error input!\n”);
else
{ str(str1,str2,m);
printf(“Result is :%s\n”,str1);
}
}
void str(char *p1,char *p2,int m)
{
}
编写函数invert将数组中的数按颠倒的顺序重新存放。在操作时,只能借助一个临时存储单元而不得另外开辟数组。
/*参数n为数组中的元素个数*/
void invert(int a[ ],int n)
{
}
6、函数maxmin完成的功能是:对传送过来的三个数选出最大和最小数,并通过形参传回调用函数。试编写该函数,
main()
{ int a, b, c, max,min;
printf(“please input three integer:\n”);
scanf(“%d,%d,%d”,&a,&b,&c);
maxmin(a,b,c,&max,&min);
printf(“a=%d,b=%d,max=%d,min=%d\n”,a,b,c,max,min);
}
void maxmin(int a, int b, int c, int *max, int *min)
{
}

❹ 计算机二级考试C语言模拟试题二

1. 运算符________的优先级最高。

A.[ ]

B. +=

C. ?:

D.++

2.main( )

{ int n; ( n=6*4,n+6),n*2; printf(“n=%d ”,n); }

此程序的输出结果是______________.

A.30

B. 24

C. 60

D. 48

3.若有如下定义,则__________是对数组元素的正确的引用。.

int a[10] , *p ; p=a ;

A. *&a[10]

B. a[11]

C. *(p+11)

D. *p *p *p

4.设整型变量n的值为2,执行语句“n+=n-=n*n;”后,n的值是__________

A. 0

B. 4

C. - 4

D. 2

5.各种基本数据类型的存贮空间正确的长度排列为__________。

A.Char

C.Char

6.下面的变量说明中__________是正确的。

A.char:a, b, c;

B.char a; b; c;

C.char a, b, c;

D.char a, b, c

7.表达式y=(13>12?15:6>7?8:9)的值为____________ 。

A 9

B 8

C 15

D. 1

8.若x=5,y=3 则y*=x+5; y的值为___________.

A. 10

B. 20

C. 15

D. 30

9.能正确表示a和b同时为正或同时为负的逻辑表达式是_________。

A.a>=0||b>=0)&&(a<0 ||b<0)

B.(a>=0 && b>=0)&&(a<0 && b<0)

C.(a+b>0) &&(a+b<=0)

D. a*b>0

10.C语言中,合法的字符型常数是_________。

A.‘A’

B.“A”

C. 65

D. A

11.已有定义 int x=3, y=4, z=5;则表达式“!(x+y)+z-1&&y+z/2”的值是________。

A.6

B.0

C.2

D.1

12.若变量c为char类型,能正确判断出c为小写字母的表达式是_______。

A.’a’<=c<=’z’

B. (c>=’a’) || (c<=’z’)

C.(‘a’<=c) and (‘z’>=c)

D. (c>=’a’) && (c<=’z’)

13.设有定义:long x=-123456L; 则以下能够正确输出变量x值的语句是_______。

A.printf(“x=%d ”,x)

B.printf(“x=%ld ”,x)

C.printf(“x=l ”,x)

C.printf(“x=%D ”,x);

14.从循环体内某一层跳出,继续执行循环外的语句是:___________。

A. break语句

B.return语句

C.continue语句

D.空语句。

15.C语言用_______表示逻辑“真”值。

A.true

B.t或y

C.非零整型值

D.整型值0

16.为了避免嵌套的条件分支语句if—else 的二义性,C语言规定:C程序中的else总是与_____组成配对关系。

A.缩排位置相同的if

B.在其之前未配对的if

C.在其之前未配对的最近的if

D.同一行上的if

17.在函数中默认存储类型说明符的变量应该是________存储类型。

A.内部静态

B. 外部

C.自动

D. 寄存器

18.C语言中以只读方式打开一个文件应选择_______________参数。

A.“r”

B.“w”

C.“rb”

D.“a”

19.设有数组定义:char array[]=”student”;则数组所占的存贮空间为__________。

A.6个字节

B. 7个字节

C. 8个字节

D. 9个字节

20.根据C语言的语法规则,下列________个是不合法标识符。

A.do

B. Name

C. R5

D. _exam

二、判断题

1. C 语言源程序文件通过了编译、连接之后 , 生成一个后缀为 .EXE 的文件。 ( )

2.在 C 程序中 , 函数既可以嵌套定义 , 也可以嵌套调用。( )

3.在 C 程序中 ,APH 和 aph 代表不同的变量。( )

4.表达式 0195 是一个八进制整数。( )

5.Continue语句的作用是结束本次循环。( )

6.Extern变量的.生命期是整个程序执行期。 ( )

7.C语言中字符串的结束符是’’。 ( )

8.利用fclose函数关闭已打开的文件。 ( )。

9.C程序总是从main( ) 函数的第一条语句开始执行的。( )

10.数组名代表数组的首地址。( )

三、填空题

1.C语言的预处理语句以__________开头。

2.表达式7+10>2 && 25 %5的结果是_______________。

3.下列程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。

Int n=0, ch; Ch=getchar( );

While( __________________ )

{ if ( ________________ ) n++; c=getchar( ); }

4.C语言中getchar() 函数的功能是_________________________。

5.int *p 的含义是______________________________。

6.定义fp为文件型指针变量的定义方法为_______________。

7.数组 int a[3][3];共定义了____________个数组元素。

四、读程序题。

1. 改正下列程序中不正确的语句。

main( )

{ int a;

scanf(“%d”, a); if (a = 1) printf(“One ”) ; }

2.写出下列程序的运行结果。

fun(int a, int b)

{ if(a>b) return (a);

Else return (b); }

main()

{ int x=3,y=8,z=6,r;

r=fun(fun(x,y),2*z); printf(“%d ”,r); }

3. 改正下列程序中不正确的语句。

main()

{ int n ;

float s=1.0;

for(n=10;n>1;n- -)

s=s+1/n;

printf(“%6.1f ”,s); }

4. 写出下列程序的运行结果。

main()

{ int n;

For(n=3; n<=10; n++)

{ if(n%6= =0) break; Printf(“%d”,n); } }

5.写出下列程序的运行结果。

#include “stdio.h”

Main()

{ int a[]={1,2,3,-4,5};

int m,n,*p; p=&a[0]; m=*(p+1); n=*(p+4);

printf(“%d %d %d ”,*p,m,n); }

五、编程题

1. 编程计算下列表达式:s=n!(n从键盘上输入)

2.输出1—100之间不能被12整除的数。

3.从键盘上输出10个整数存入一维数组中,按由大到小的顺序输出。

4.从键盘上输入9个数,按3行3列的格式输出。

5.编程将文件read.txt中的字符读出显示到屏幕上。

❺ c语言编程题目及答案

#include <stdio.h>
#include <math.h>
void main(void)
{
double a;

double b;

double c;/* 以上三个变量分别对应三边 */

double sin_c;/* c边对应角的正玄值 */

double cos_c;/*c边对应角的余玄值*/

double cos_a;

double area; /* 三角形的面积 */

printf("输入a,b,c:");

scanf("%lf, %lf, %lf", &a, &b, &c);

if(((a+b)>c) && (a-b)<c)
{
printf("三边能够成三角形\n.");

cos_c = (a*a + b*b -c*c)/(2*a*b);

cos_a = (b*b + c*c - a*a)/(2*b*c);

if ((cos_c > 0) && (cos_a >0))
{
printf("三角形是锐角三角形。\n");
}

else if ((cos_c < 0) || (cos_a < 0))
{
printf("三角形是钝角三角形\n");
}
else
{
printf("三角形是直角三角形\n");
}

sin_c = sqrt(1- cos_c*cos_c);

area = a*b*sin_c/2;

printf("三角形的面积是%f.\n",area);
}
else
{
printf("三边不能构成三角形\n");
}
}

❻ 谁给我提供一套C语言编程题库

题目:打印出杨辉三角形(要求打印出10行如下图)
1.程序分析:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
2.程序源代码:
main()
{int i,j;
int a[10][10];
printf("\n");
for(i=0;i<10;i++)
{a[i][0]=1;
a[i][i]=1;}
for(i=2;i<10;i++)
for(j=1;j a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<10;i++)
{for(j=0;j<=i;j++)
printf("]",a[i][j]);
printf("\n");
}
}
==============================================================
【程序62】
题目:学习putpixel画点。
1.程序分析:
2.程序源代码:
#include "stdio.h"
#include "graphics.h"
main()
{
int i,j,driver=VGA,mode=VGAHI;
initgraph(&driver,&mode,"");
setbkcolor(YELLOW);
for(i=50;i<=230;i+=20)
for(j=50;j<=230;j++)
putpixel(i,j,1);
for(j=50;j<=230;j+=20)
for(i=50;i<=230;i++)
putpixel(i,j,1);
}
==============================================================
【程序63】
题目:画椭圆ellipse
1.程序分析:
2.程序源代码:
#include "stdio.h"
#include "graphics.h"
#include "conio.h"
main()
{
int x=360,y=160,driver=VGA,mode=VGAHI;
int num=20,i;
int top,bottom;
initgraph(&driver,&mode,"");
top=y-30;
bottom=y-30;
for(i=0;i{
ellipse(250,250,0,360,top,bottom);
top-=5;
bottom+=5;
}
getch();
}
==============================================================
【程序64】
题目:利用ellipse and rectangle 画图。
1.程序分析:
2.程序源代码:
#include "stdio.h"
#include "graphics.h"
#include "conio.h"
main()
{
int driver=VGA,mode=VGAHI;
int i,num=15,top=50;
int left=20,right=50;
initgraph(&driver,&mode,"");
for(i=0;i{
ellipse(250,250,0,360,right,left);
ellipse(250,250,0,360,20,top);
rectangle(20-2*i,20-2*i,10*(i+2),10*(i+2));
right+=5;
left+=5;
top+=10;
}
getch();
}
==============================================================
【程序65】
题目:一个最优美的图案。
1.程序分析:
2.程序源代码:
#include "graphics.h"
#include "math.h"
#include "dos.h"
#include "conio.h"
#include "stdlib.h"
#include "stdio.h"
#include "stdarg.h"
#define MAXPTS 15
#define PI 3.1415926
struct PTS {
int x,y;
};
double AspectRatio=0.85;
void LineToDemo(void)
{
struct viewporttype vp;
struct PTS points[MAXPTS];
int i, j, h, w, xcenter, ycenter;
int radius, angle, step;
double rads;
printf(" MoveTo / LineTo Demonstration" );
getviewsettings( &vp );
h = vp.bottom - vp.top;
w = vp.right - vp.left;
xcenter = w / 2; /* Determine the center of circle */
ycenter = h / 2;
radius = (h - 30) / (AspectRatio * 2);
step = 360 / MAXPTS; /* Determine # of increments */
angle = 0; /* Begin at zero degrees */
for( i=0 ; irads = (double)angle * PI / 180.0; /* Convert angle to radians */
points[i].x = xcenter + (int)( cos(rads) * radius );
points[i].y = ycenter - (int)( sin(rads) * radius * AspectRatio );
angle += step; /* Move to next increment */
}
circle( xcenter, ycenter, radius ); /* Draw bounding circle */
for( i=0 ; ifor( j=i ; jmoveto(points[i].x, points[i].y); /* Move to beginning of cord */
lineto(points[j].x, points[j].y); /* Draw the cord */
} } }
main()
{int driver,mode;
driver=CGA;mode=CGAC0;
initgraph(&driver,&mode,"");
setcolor(3);
setbkcolor(GREEN);
LineToDemo();}
==============================================================
【程序66】
题目:输入3个数a,b,c,按大小顺序输出。
1.程序分析:利用指针方法。
2.程序源代码:
/*pointer*/
main()
{
int n1,n2,n3;
int *pointer1,*pointer2,*pointer3;
printf("please input 3 number:n1,n2,n3:");
scanf("%d,%d,%d",&n1,&n2,&n3);
pointer1=&n1;
pointer2=&n2;
pointer3=&n3;
if(n1>n2) swap(pointer1,pointer2);
if(n1>n3) swap(pointer1,pointer3);
if(n2>n3) swap(pointer2,pointer3);
printf("the sorted numbers are:%d,%d,%d\n",n1,n2,n3);
}
swap(p1,p2)
int *p1,*p2;
{int p;
p=*p1;*p1=*p2;*p2=p;
}
==============================================================
【程序67】
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
1.程序分析:谭浩强的书中答案有问题。
2.程序源代码:
main()
{
int number[10];
input(number);
max_min(number);
output(number);
}
input(number)
int number[10];
{int i;
for(i=0;i<9;i++)
scanf("%d,",&number[i]);
scanf("%d",&number[9]);
}
max_min(array)
int array[10];
{int *max,*min,k,l;
int *p,*arr_end;
arr_end=array+10;
max=min=array;
for(p=array+1;p if(*p>*max) max=p;
else if(*p<*min) min=p;
k=*max;
l=*min;
*p=array[0];array[0]=l;l=*p;
*p=array[9];array[9]=k;k=*p;
return;
}
output(array)
int array[10];
{ int *p;
for(p=array;p printf("%d,",*p);
printf("%d\n",array[9]);
}
==============================================================
【程序68】
题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
1.程序分析:
2.程序源代码:
main()
{
int number[20],n,m,i;
printf("the total numbers is:");
scanf("%d",&n);
printf("back m:");
scanf("%d",&m);
for(i=0;i scanf("%d,",&number[i]);
scanf("%d",&number[n-1]);
move(number,n,m);
for(i=0;i printf("%d,",number[i]);
printf("%d",number[n-1]);
}
move(array,n,m)
int n,m,array[20];
{
int *p,array_end;
array_end=*(array+n-1);
for(p=array+n-1;p>array;p--)
*p=*(p-1);
*array=array_end;
m--;
if(m>0) move(array,n,m);
}
==============================================================
【程序69】
题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出
圈子,问最后留下的是原来第几号的那位。
1. 程序分析:
2.程序源代码:
#define nmax 50
main()
{
int i,k,m,n,num[nmax],*p;
printf("please input the total of numbers:");
scanf("%d",&n);
p=num;
for(i=0;i *(p+i)=i+1;
i=0;
k=0;
m=0;
while(m {
if(*(p+i)!=0) k++;
if(k==3)
{ *(p+i)=0;
k=0;
m++;
}
i++;
if(i==n) i=0;
}
while(*p==0) p++;
printf("%d is left\n",*p);
}
==============================================================
【程序70】
题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
1.程序分析:
2.程序源代码:
main()
{
int len;
char *str[20];
printf("please input a string:\n");
scanf("%s",str);
len=length(str);
printf("the string has %d characters.",len);
}
length(p)
char *p;
{
int n;
n=0;
while(*p!='\0')
{
n++;
p++;
}
return n;
}
【程序71】
题目:编写input()和output()函数输入,输出5个学生的数据记录。
1.程序分析:
2.程序源代码:
#define N 5
struct student
{ char num[6];
char name[8];
int score[4];
} stu[N];
input(stu)
struct student stu[];
{ int i,j;
for(i=0;i { printf("\n please input %d of %d\n",i+1,N);
printf("num: ");
scanf("%s",stu[i].num);
printf("name: ");
scanf("%s",stu[i].name);
for(j=0;j<3;j++)
{ printf("score %d.",j+1);
scanf("%d",&stu[i].score[j]);
}
printf("\n");
}
}
print(stu)
struct student stu[];
{ int i,j;
printf("\nNo. Name Sco1 Sco2 Sco3\n");
for(i=0;i{ printf("%-6s%-10s",stu[i].num,stu[i].name);
for(j=0;j<3;j++)
printf("%-8d",stu[i].score[j]);
printf("\n");
}
}
main()
{
input();
print();
}
==============================================================
【程序72】
题目:创建一个链表。
1.程序分析:
2.程序源代码:
/*creat a list*/
#include "stdlib.h"
#include "stdio.h"
struct list
{ int data;
struct list *next;
};
typedef struct list node;
typedef node *link;
void main()
{ link ptr,head;
int num,i;
ptr=(link)malloc(sizeof(node));
ptr=head;
printf("please input 5 numbers==>\n");
for(i=0;i<=4;i++)
{
scanf("%d",&num);
ptr->data=num;
ptr->next=(link)malloc(sizeof(node));
if(i==4) ptr->next=NULL;
else ptr=ptr->next;
}
ptr=head;
while(ptr!=NULL)
{ printf("The value is ==>%d\n",ptr->data);
ptr=ptr->next;
}
}
==============================================================
【程序73】
题目:反向输出一个链表。
1.程序分析:
2.程序源代码:
/*reverse output a list*/
#include "stdlib.h"
#include "stdio.h"
struct list
{ int data;
struct list *next;
};
typedef struct list node;
typedef node *link;
void main()
{ link ptr,head,tail;
int num,i;
tail=(link)malloc(sizeof(node));
tail->next=NULL;
ptr=tail;
printf("\nplease input 5 data==>\n");
for(i=0;i<=4;i++)
{
scanf("%d",&num);
ptr->data=num;
head=(link)malloc(sizeof(node));
head->next=ptr;
ptr=head;
}
ptr=ptr->next;
while(ptr!=NULL)
{ printf("The value is ==>%d\n",ptr->data);
ptr=ptr->next;
}}
==============================================================
【程序74】
题目:连接两个链表。
1.程序分析:
2.程序源代码:
#include "stdlib.h"
#include "stdio.h"
struct list
{ int data;
struct list *next;
};
typedef struct list node;
typedef node *link;
link delete_node(link pointer,link tmp)
{if (tmp==NULL) /*delete first node*/
return pointer->next;
else
{ if(tmp->next->next==NULL)/*delete last node*/
tmp->next=NULL;
else /*delete the other node*/
tmp->next=tmp->next->next;
return pointer;
}
}
void selection_sort(link pointer,int num)
{ link tmp,btmp;
int i,min;
for(i=0;i {
tmp=pointer;
min=tmp->data;
btmp=NULL;
while(tmp->next)
{ if(min>tmp->next->data)
{min=tmp->next->data;
btmp=tmp;
}
tmp=tmp->next;
}
printf("\40: %d\n",min);
pointer=delete_node(pointer,btmp);
}
}
link create_list(int array[],int num)
{ link tmp1,tmp2,pointer;
int i;
pointer=(link)malloc(sizeof(node));
pointer->data=array[0];
tmp1=pointer;
for(i=1;i{ tmp2=(link)malloc(sizeof(node));
tmp2->next=NULL;
tmp2->data=array[i];
tmp1->next=tmp2;
tmp1=tmp1->next;
}
return pointer;
}
link concatenate(link pointer1,link pointer2)
{ link tmp;
tmp=pointer1;
while(tmp->next)
tmp=tmp->next;
tmp->next=pointer2;
return pointer1;
}
void main(void)
{ int arr1[]={3,12,8,9,11};
link ptr;
ptr=create_list(arr1,5);
selection_sort(ptr,5);
}
==============================================================
【程序75】
题目:放松一下,算一道简单的题目。
1.程序分析:
2.程序源代码:
main()
{
int i,n;
for(i=1;i<5;i++)
{ n=0;
if(i!=1)
n=n+1;
if(i==3)
n=n+1;
if(i==4)
n=n+1;
if(i!=4)
n=n+1;
if(n==3)
printf("zhu hao shi de shi:%c",64+i);
}
}
==============================================================
【程序76】
题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数
1/1+1/3+...+1/n(利用指针函数)
1.程序分析:
2.程序源代码:
main()
#include "stdio.h"
main()
{
float peven(),podd(),dcall();
float sum;
int n;
while (1)
{
scanf("%d",&n);
if(n>1)
break;
}
if(n%2==0)
{
printf("Even=");
sum=dcall(peven,n);
}
else
{
printf("Odd=");
sum=dcall(podd,n);
}
printf("%f",sum);
}
float peven(int n)
{
float s;
int i;
s=1;
for(i=2;i<=n;i+=2)
s+=1/(float)i;
return(s);
}
float podd(n)
int n;
{
float s;
int i;
s=0;
for(i=1;i<=n;i+=2)
s+=1/(float)i;
return(s);
}
float dcall(fp,n)
float (*fp)();
int n;
{
float s;
s=(*fp)(n);
return(s);
}
==============================================================
【程序77】
题目:填空练习(指向指针的指针)
1.程序分析:
2.程序源代码:
main()
{ char *s[]={"man","woman","girl","boy","sister"};
char **q;
int k;
for(k=0;k<5;k++)
{ ;/*这里填写什么语句*/
printf("%s\n",*q);
}
}
==============================================================
【程序78】
题目:找到年龄最大的人,并输出。请找出程序中有什么问题。
1.程序分析:
2.程序源代码:
#define N 4
#include "stdio.h"
static struct man
{ char name[20];
int age;
} person[N]={"li",18,"wang",19,"zhang",20,"sun",22};
main()
{struct man *q,*p;
int i,m=0;
p=person;
for (i=0;i{if(mage)
q=p++;
m=q->age;}
printf("%s,%d",(*q).name,(*q).age);
}
==============================================================
【程序79】
题目:字符串排序。
1.程序分析:
2.程序源代码:
main()
{
char *str1[20],*str2[20],*str3[20];
char swap();
printf("please input three strings\n");
scanf("%s",str1);
scanf("%s",str2);
scanf("%s",str3);
if(strcmp(str1,str2)>0) swap(str1,str2);
if(strcmp(str1,str3)>0) swap(str1,str3);
if(strcmp(str2,str3)>0) swap(str2,str3);
printf("after being sorted\n");
printf("%s\n%s\n%s\n",str1,str2,str3);
}
char swap(p1,p2)
char *p1,*p2;
{
char *p[20];
strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);
}
==============================================================
【程序80】
题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只
猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了
一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,
问海滩上原来最少有多少个桃子?
1.程序分析:
2.程序源代码:
main()
{int i,m,j,k,count;
for(i=4;i<10000;i+=4)
{ count=0;
m=i;
for(k=0;k<5;k++)
{
j=i/4*5+1;
i=j;
if(j%4==0)
count++;
else
break;
}
i=m;
if(count==4)
{printf("%d\n",count);
break;}
}
}
【程序81】
题目:809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。
1.程序分析:
2.程序源代码:
output(long b,long i)
{ printf("\n%ld/%ld=809*%ld+%ld",b,i,i,b%i);
}
main()
{long int a,b,i;
a=809;
for(i=10;i<100;i++)
{b=i*a+1;
if(b>=1000&&b<=10000&&8*i<100&&9*i>=100)
output(b,i); }
}
==============================================================
【程序82】
题目:八进制转换为十进制
1.程序分析:
2.程序源代码:
main()
{ char *p,s[6];int n;
p=s;
gets(p);
n=0;
while(*(p)!='\0')
{n=n*8+*p-'0';
p++;}
printf("%d",n);
}
==============================================================
【程序83】
题目:求0—7所能组成的奇数个数。
1.程序分析:
2.程序源代码:
main()
{
long sum=4,s=4;
int j;
for(j=2;j<=8;j++)/*j is place of number*/
{ printf("\n%ld",sum);
if(j<=2)
s*=7;
else
s*=8;
sum+=s;}
printf("\nsum=%ld",sum);
}
==============================================================
【程序84】
题目:一个偶数总能表示为两个素数之和。
1.程序分析:
2.程序源代码:
#include "stdio.h"
#include "math.h"
main()
{ int a,b,c,d;
scanf("%d",&a);
for(b=3;b<=a/2;b+=2)
{ for(c=2;c<=sqrt(b);c++)
if(b%c==0) break;
if(c>sqrt(b))
d=a-b;
else
break;
for(c=2;c<=sqrt(d);c++)
if(d%c==0) break;
if(c>sqrt(d))
printf("%d=%d+%d\n",a,b,d);
}
}
==============================================================
【程序85】
题目:判断一个素数能被几个9整除
1.程序分析:
2.程序源代码:
main()
{ long int m9=9,sum=9;
int zi,n1=1,c9=1;
scanf("%d",&zi);
while(n1!=0)
{ if(!(sum%zi))
n1=0;
else
{m9=m9*10;
sum=sum+m9;
c9++;
}
}
printf("%ld,can be divided by %d \"9\"",sum,c9);
}
==============================================================
【程序86】
题目:两个字符串连接程序
1.程序分析:
2.程序源代码:
#include "stdio.h"
main()
{char a[]="acegikm";
char b[]="bdfhjlnpq";
char c[80],*p;
int i=0,j=0,k=0;
while(a[i]!='\0'&&b[j]!='\0')
{if (a[i] { c[k]=a[i];i++;}
else
c[k]=b[j++];
k++;
}
c[k]='\0';
if(a[i]=='\0')
p=b+j;
else
p=a+i;
strcat(c,p);
puts(c);
}
==============================================================
【程序87】
题目:回答结果(结构体变量传递)
1.程序分析:
2.程序源代码:
#include "stdio.h"
struct student
{ int x;
char c;
} a;
main()
{a.x=3;
a.c='a';
f(a);
printf("%d,%c",a.x,a.c);
}
f(struct student b)
{
b.x=20;
b.c='y';
}
==============================================================
【程序88】
题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。
1.程序分析:
2.程序源代码:
main()
{int i,a,n=1;
while(n<=7)
{ do {
scanf("%d",&a);
}while(a<1||a>50);
for(i=1;i<=a;i++)
printf("*");
printf("\n");
n++;}
getch();
}
==============================================================
【程序89】
题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:
每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
1.程序分析:
2.程序源代码:
main()
{int a,i,aa[4],t;
scanf("%d",&a);
aa[0]=a;
aa[1]=a0/10;
aa[2]=a00/100;
aa[3]=a/1000;
for(i=0;i<=3;i++)
{aa[i]+=5;
aa[i]%=10;
}
for(i=0;i<=3/2;i++)
{t=aa[i];
aa[i]=aa[3-i];
aa[3-i]=t;
}
for(i=3;i>=0;i--)
printf("%d",aa[i]);
}
==============================================================
【程序90】
题目:专升本一题,读结果。
1.程序分析:
2.程序源代码:
#include "stdio.h"
#define M 5
main()
{int a[M]={1,2,3,4,5};
int i,j,t;
i=0;j=M-1;
while(i {t=*(a+i);
*(a+i)=*(a+j);
*(a+j)=t;
i++;j--;
}
for(i=0;i printf("%d",*(a+i));
}
【程序91】
题目:时间函数举例1
1.程序分析:
2.程序源代码:
#include "stdio.h"
#include "time.h"
void main()
{ time_t lt; /*define a longint time varible*/
lt=time(NULL);/*system time and date*/
printf(ctime(<)); /*english format output*/
printf(asctime(localtime(<)));/*tranfer to tm*/
printf(asctime(gmtime(<))); /*tranfer to Greenwich time*/
}
==============================================================
【程序92】
题目:时间函数举例2
1.程序分析:
2.程序源代码:
/*calculate time*/
#include "time.h"
#include "stdio.h"
main()
{ time_t start,end;
int i;
start=time(NULL);
for(i=0;i<3000;i++)
{ printf("\1\1\1\1\1\1\1\1\1\1\n");}
end=time(NULL);
printf("\1: The different is %6.3f\n",difftime(end,start));
}
==============================================================
【程序93】
题目:时间函数举例3
1.程序分析:
2.程序源代码:
/*calculate time*/
#include "time.h"
#include "stdio.h"
main()
{ clock_t start,end;
int i;
double var;
start=clock();
for(i=0;i<10000;i++)
{ printf("\1\1\1\1\1\1\1\1\1\1\n");}
end=clock();
printf("\1: The different is %6.3f\n",(double)(end-start));
}
==============================================================
【程序94】
题目:时间函数举例4,一个猜数游戏,判断一个人反应快慢。(版主初学时编的)
1.程序分析:
2.程序源代码:
#include "time.h"
#include "stdlib.h"
#include "stdio.h"
main()
{char c;
clock_t start,end;
time_t a,b;
double var;
int i,guess;
srand(time(NULL));
printf("do you want to play it.('y' or 'n') \n");
loop:
while((c=getchar())=='y')
{
i=rand()0;
printf("\nplease input number you guess:\n");
start=clock();
a=time(NULL);
scanf("%d",&guess);
while(guess!=i)
{if(guess>i)
{printf("please input a little smaller.\n");
scanf("%d",&guess);}
else
{printf("please input a little bigger.\n");
scanf("%d",&guess);}
}
end=clock();
b=time(NULL);
printf("\1: It took you %6.3f seconds\n",var=(double)(end-start)/18.2);
printf("\1: it took you %6.3f seconds\n\n",difftime(b,a));
if(var<15)
printf("\1\1 You are very clever! \1\1\n\n");
else if(var<25)
printf("\1\1 you are normal! \1\1\n\n");
else
printf("\1\1 you are stupid! \1\1\n\n");
printf("\1\1 Congralations \1\1\n\n");
printf("The number you guess is %d",i);
}
printf("\ndo you want to try it again?(\"yy\".or.\"n\")\n");
if((c=getch())=='y')
goto loop;
}
==============================================================

❼ C语言编程题2道!急!!!!!!!

1:
#include<stdio.h>
int main()
{
int a[10];
int i;
int max = 0;
int min = 100;
int maxi=0;
int mini =0;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
if(a[i]<min)
{
min = a[i];
mini = i;
}
if(a[i]>max)
{
max = a[i];
maxi = i;
}
}
int sum =0;
for(i=0;i<10;i++)
{
if(i != mini && i != maxi)
{
sum +=a[i];
}
}
float ave = sum*1.0/8;
printf("%f",ave);
return 0;
}

2:
#include<stdio.h>
int main()
{
char sstr[100];
scanf("%s",sstr);
int count =0;
int i=0;
while(sstr[i] != '\0')
{
if(sstr[i] == ',')
{
count++;
}
i++;
}
printf("%d",count+1); //+1是计算最后一个逗号的后的单词。
return 0;
}
运行效果:
qw,er,ty,ty
4