小学信息技术教师编c语言试题,小学计算机水平等级测评试卷 C语言版

2012年芜湖市小学计算机水平等级测评试卷(C语言卷)

林老师自己最常使用的计算机语言是VB、C、C

语言,实用的程序都用这前三种语言编写,程序功能正常、效率高就行。但Pascal语言和LOGO语言却是林老师研究最多的语言,因为这是教学语言。现在小学生学C语言多半是将来攀登冲锋国内外的“奥赛”使然,其实C入门难、趣味性也较差,作为大面积普及的计算机程序设计语言是值得商榷的。下面的题目供大家参考,有兴趣的看看、做做。除了直接指向C语言的其它题目,一般学习计算机的,也可以做做。

温馨提示:本试卷包含四大题,共8页。考试时间120分钟,满分120分。

一、单项选择题(共10题,每题2分,共计20分)。

1.计算机处理信息的精度取决于( )。

A.

CPU的主频 B.

CPU的字长 C.

硬盘的容量 D.

系统总线的传输速率

2.计算机技术日新月异,但其基本硬件结构仍一直沿袭( )设计的框架。

A.

冯·诺依曼 B.

比尔·盖茨 C.

摩尔 D. 图灵

3.以下关于计算机存储计量单位由小到大正确的排列顺序是( )。

A.

TB GB PB EB B.GB TB PB EB

C.

GB TB EB PB

D.TB GB EB PB

4.下列不属于计算机病毒预防措施的是( )。

A.

拥有计算机病毒检测扫描器 B. 拥有实时监控程序

C.

可对未知计算机病毒进行检测 D. 对已知的计算机病毒进行检测

5.在C语言中,错误的int类型的常数是( )。

A. 1.25E3

B.

0 C. 0xAF

D.

0208

6.为求出表达式s=1! 2! …

10!的值,则变量s的数据类型应当定义为( )。

A. short

int B. unsigned short C. long

D.

以上均可

7.计算机在执行以下语言编写的程序时,执行效率最高的是

( )。

A. 汇编语言

B.

机器语言

C.

高级语言 D. C/C 语言

8.在计算机术语中经常用RAM表示( )。

A.

只读存储器 B.

可编程只读存储器

C.

动态随机存储器 D. 随机存取存储器

9.计算机的硬件系统应包括( )。

A.

主机和外部设备 B. 输入、输出设备、存储器和中央处理器

C.

处理和存储设备 D.

主机、键盘、鼠标、显示器和音响设备

10.下列关于ASCII的叙述不正确的是( )。

A.

ASCII是美国信息交换标准代码的简称。

B.

每个ASCII值对应一个字符,如ASCII值是100对应字符是d。

C.

ASCII值对应字符共有255个。

D.

ASCII值0-31为控制字符,是不可见字符。

二、问题求解(前4空每空2分,后2空每空1分,共计10分)。

1、某班有56名学生,每位学生发一张调查卡,上面写a,b,c三本书的书名,将读过的书打√,结果统计数字如下:读过a本书的有16人;读过b本书的有12人;读过c本书的有9人;全部读过的有2人;读过a,b两本书的有5人;读过b,c两本书的有4人;读过a,c两本书的有3人;问只读过a本书的人数是________人,一本书也没有读过的人数是________人。

2、(寻找假币)现有80枚硬币,其中有一枚是假币,其重量稍轻,所有真币的重量都相同,如果使用不带砝码的天平称重,可以保证只要称________次,就可以找出假币。第1次的称重方法是分________份,称量其中____和____枚的两份。

三、阅读程序判别出正确结果(共10题,每题5分,共计50分)。

1、下面程序的输出结果是( )。

#include

main()

{  int a=1,i=a 1;

do

{ a ;

}

while( !~i > 3);

printf("%d\n",a);

}

A. 1

B. 2

C. 3

D. 4

2、以下程序的输出结果是( )。

#include

main(

)

{  int x=10, y=10;

printf("%d %d %d\n", x--, --y,x y);

}

A. 9 10

20 B. 10 9 19

C. 9 10 19

D.

10

9 20

3、以下程序的输出结果是( )。

#include

main()

{  int a=0,b=1,c=0,d=20;

if(a) d=d-10;

else if(!b)

if(!c) d=15;

else d=25;

printf("d=%d\n",d);

}

A. d=10

B.

d=15

C.

d=20

D.

d=25

4、下面程序的输出结果是( )。

#include

main()

{  int k=0;

char c='A';

do

{

switch(c )

{

case 'A': k ;break;

case 'B': k--;

case 'C': k =2;break;

case 'D': k=k%2;continue;

case 'E': k=k 10;break;

default: k=k/3;

}

k ;

}

while(c

printf("k=%d\n",k);

}

A. k=1

B. k=2

C. k=3

D. k=4

5、下面程序的输出结果是( )。

#include

main( )

{

int i,k,a[10],p[3];

k=5;

for(i=0;i<10;i )

a[i]=i;

for(i=0;i<3;i )

p[i]=a[i*(i 1)];

for(i=0;i<3;i )

k =p[i]*2;

printf("%d\n",k);

}

A. 20

B.

21

C.

22

D.

23

6、下面程序的输出结果是( )。

#include

main()

{  int i,j,x=0;

for(i=0;i<2;i )

{ x ;

for(j=0;j<1;j )

{ if(j%2)

continue;

x ;

}x ;

}

printf("x=%d\n",x);

}

A. x=4

B. x=8

C. x=6

D. x=12

7、下面程序的输出结果是( )。

#include

main()

{  int i,j,k=10;

for(i=0;i<2;i )

{ k ;

{ int k=0;

for(j=0;j<=3;j )

{  if(j%2)

continue;

k ;

}

}k ;

}

printf("k=%d\n",k);

}

A.

k=4 B. k=8

C. k=14

D. k=18

8、下面程序的输出结果是( )。

#include

main( )

{

int a[4][5]={1,2,4,-4,5,-9,3,6,-3,2,7,8,9,0};

int i,j,n;

n=9;

i=n/5;

j=n-i*5-1;

printf("%d\n",a[ i][--j]);

}

A. 0

B.

-3

C.

2

D.

9

main()

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

for(k=1;k<3;k )

fun(a);

for(k=0;k<5;k )

printf("%d",a[k]);

}

9、下面程序的输出结果是( )。

#include

void fun(int *s)

{  static int j=0;

do

{ s[j] =s[j 1];

}while( j<2);

}

main()

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

for(k=1;k<3;k )

fun(a);

for(k=0;k<5;k )

printf("%d",a[k]);

}

A. 35756

B. 23445

C. 35745

D. 12345

main()

{  int a=2,i,k;

for(i=0;i<2;i )

k=funa(a--);

printf("%d\n",k);

}

10、下面程序的输出结果是( )。

#include

int funa(int a)

{  int b=0;

static int c=3;

a=c ,b ;

return(a);

}

main()

{  int a=2,i,k;

for(i=0;i<2;i )

k=funa(a--);

printf("%d\n",k);

}

A. 3

B.

0

C.

5

D.

4

四、依照下列题意,将程序补充完整(共4题,20个空,共计40分)。

1、杨辉三角问题

【问题描述】打印一个6阶的杨辉三角。

# include "stdio.h"

程序运行输出结果:

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

1 6 15 20 15 6 1

main()

{ int i,j,k,n,buf[7],tmp[7];

for(i=0;i<=6;i )

{ for(n=i;n<=6;n )

printf(" ");

if(i==0) printf("=\n",1);

else

{ for(j=1; ________;j )

{ if(j==1 ________ j==i 1)

{ printf("= ",1);

tmp[j-1]

=________;

}

else{ tmp[j-1] = ________ buf[j-1];

printf("=

",tmp[j-1]);

}

} printf("\n");

for(k=0;k<=6;k

)

buf[k]

=

________;

}

}

}

程序运行输出结果:

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

1 6 15 20 15 6 1

2、连续整数固定和问题

【问题描述】

编写一个程序,找出一个数的全部的连续整数固定和。所谓一个数n的连续整数固定和,就是指存在a1,a2,…,am,其中ai

1比ai大1,使得a1 a2 …

am=n。这样a1,a2,…,am称为n的一个连续整数固定和。

例如27的全部的连续整数固定和有3组:

2 3 … 7=27;

8 9 10=27;

13 14=27。

本题就是要找出任意输入的整数n(n>=2)的全部的连续整数固定和。

#include "stdio.h"

void cntnsIntSum(int n)

{

int i,sum=0,j;

for(i=1;i

{

j = i-1;

while(________)

{

j ;

sum = sum ________;

}

if(________)

{

printf("%d

... %d

= %d\n",i,j,n);

}

sum =________;

}

}

main()

{

int n;

printf("Please input an integer\n");

scanf("%d",&n);

________________;

}

样例:Please input an integer

输入:27

输出:2 … 7=27

8 … 10=27

13 …14=27

3、验证尼克彻斯定理

【问题描述】

尼克彻斯定理可以叙述为:任何一个自然数N的立方都可以表示成N个连续奇数的和。

这里要注意:(1)这些奇数一定是要连续的,例如1,3,5,7,9…。

(2)满足条件的奇数有N个,例如23=2*2*2=3

5,共2个奇数。

#include "stdio.h"

void Nicoqish(int N)

{

int i,j,sum = 0;

for(i=1;i________)

for(j=i;j________)

{

sum = sum j;

if(sum == ________)

{

printf("%d*%d*%d=%d=%d %d... %d\n",N,N,N,N*N*N,i,i 2,j);

return;

}

if(j________i 2*N)

{

sum = 0;

break;

}

}

}

main()

{

int N;

printf("Please input an integer to verify Nicoqish Law\n");

scanf("%d",&N);

Nicoqish(N);

}

样例:Please input an integer to verify Nicoqish Law

输入:3

输出: 3*3*3=27=7 9... 11

输入:6

输出: 6*6*6=216=31 33... 41

输入:10

输出: 10*10*10=1000=91 93... 109

4、三重回文数

【问题描述】

如果一个数从左到右读和从右到左读都是同一个数则称为回文数,所谓三重回文数a就是指a,a2,a3都是回文数。下面编程找出11~999之间的所有的三重回文数。

#include "stdio.h"

long reverse(long i)

{

long m,j=0;

________________;

while(m){

j=________________;

m=m/10;

}

return

j;

}

long isCircle(long n)

{

long m;

m= ________;

if(m != n)

return ________;

else

return ________;

}

palindrome(long low,long high)

{

long i;

for(i=low;i<=high;i )

{

if(____________________________________==3)

printf("%d ",i);

}

}

main()

{

printf("The palindrome numbers

between

11~999 are\n");

palindrome(11,999);

}

样例:The palindrome numbers between 11~999 are

11 101 111

欢迎评论 欢迎转载

查找林老师博客最便捷的方法:

在百度、谷歌、搜狗、搜搜、雅虎、有道等搜索引擎中输入

林老师 LOGO

就能找到林老师博客文章了

查阅林老师最新发表文章的链接:

快速检索数百篇博客提高阅读效率的链接:

因网络拥挤“纸条”常不能及时打开查阅。有信息尽量使用“评论”或邮件。

需要LOGO系统文件常用表格工具文件及DEV-C

系统文件的可以发邮件给林老师

声明:

林正山老师发表的文章及照片,媒体、网站或出版物未经本人许可谢绝进行任何形式的删节、改编、重组及转载。

允许个人博客按原文(含图片及附注)进行完整转载,转载时敬请注明本博作者姓名、文章原始出处,并以链接形式标明来源。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值