2010年C语言程序设计竞赛试题

合集下载

2010程序设计竞赛题

2010程序设计竞赛题

2010年韶关市中等职业学校学生专业技能竞赛计算机应用项目程序设计竞赛试题时间:90分钟要求:1.选手在规定时间内,运用 Visual Basic6.0<中文版>独立编写、修改和调试程序。

2.按题目要求完成设计并与测试数据相符,并编译成可执行文件(以.EXE为扩展名)。

3.参赛者以考号在D盘下新建一个文件夹,全部程序文件存放其中。

4.参赛者可以同时使用其它软件开发工具。

5.题目的主文件名不符扣2分。

题目:1.请编程设计一只扑动翅膀的蝴蝶(蝴蝶素材在文件夹“1”中),效果参考文件夹1中的“蝴蝶飞.gif”文件及右图,不断点击“蝴蝶飞”按钮,蝴蝶就会不断扑动翅膀。

(程序文件名为Prog1,10分)2.编写程序,验证:对任意一个三个数字不全部相同的三位正整数,由这三个数字组成的最大数减去最小数,得到新的数,对新的数重复进行上述处理,最后总能得到 495 。

【编程要求】(1 )程序参考界面如图所示,编程时不得不增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见;(2)运行程序时,在文本框中输入需要验证的三个数,按“ 验证” 按钮,如果输入的三个数个位数字均相等(例如输入 222 ),利用 MsgBox 给出出错信息,程序结束;若输入数据合法,则在列表框中显示验证过程;按“ 清除” 按钮,则将文本框、列表框清空,将焦点至于文本框上;(3)程序中应定义一个求给定三位数的数字重新排列得到的最大和最小数的通用过程。

(程序文件名为Prog2,20分)3.随机生成15个两位正整数,从中找出所有的素数,并记下它是第几个数,再找出其中最大的素数,并给出它的位置。

【编程要求】(1)单击“执行”按钮,则随机生成15个两位正整数,并显示在文本框Text1中;然后从中找出所有的素数,并记下它是第几个数,按图示方式显示在列表框List1中,并将其中最大的素数及其位置分别显示在文本框Text2和Text3;(2)程序中至少包含一个判断某数是否为素数的通用(函数)过程。

2010年全国计算机等级考试C语言试题及答案

2010年全国计算机等级考试C语言试题及答案

2010年全国计算机等级考试C语言试题及答案一、选择题(1)下列叙述中正确的是AA)对长度为n的有序链表进行查找,最坏清况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)(2)算法的时问复杂度是指DA)算法的执行时间B)算法所处理的数据量C)算法程序中的语司或指令条数D)算法在执行过程中所需要的基本运算次数(3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。

下面属于系统软件的是B A)编辑软件B)操作系统C)教务管理系统D)浏览器(4)软件(程序)调试的任务是A A)诊断和改正程序中的错误B)尽可能多地发现程序中的错误C)发现并改正程序中的所有错误D)确定程序中错误的性质(5)数据流程图(DFD图)是 C A)软件概要设计的工具B)软件详细设计的工具C)结构化方法的需求分析工具D)面向对象方法的需求分析工具(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。

详细设计属于B A)定义阶段B)开发阶段C)维护阶段D)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是 A A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是D A)文件B)数据库C)字段D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的C A)需求分析阶段B)逻辑设计一阶段C)概念设计阶段D)物理设计阶段(10)有两个关系R和T如下:则由关系K得到关系T的操作是A)选择B)投影C)交D)并(11)以下叙述正确的是B A)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(x))C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可作为单独文件形式存在(12)以下关于C语言的叙述中正确的是B A)C语言中的注释不可以夹在变量名或关键字的中间B)C语言中的变量可以在使用之前的任何位置进行定义C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D)C语言的数值常量中夹带空格不影响常量值的正确表示(13)以下C语言用户标识符中,不合法的是 D A)_1B)AaBcC)a_bD)a—b(14)若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是 C A)a=a++,i++;B)i=(a+k)<=(i+k);C)i=a%11;D)i=!a;(15)有以下程序 C #include<stdio.h>main(){ char a,b,c,d;scanf(“%c%c”,&a,&b);c=getchar(); d=getchar();printf(“%c%c%c%c\n”,a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符)12<CR>34<CR>则输出结果是C A)1234B)12C)123D)1234(16)以i关于C语言数据类型使用的叙述中错误的是 D A)若要准确无误差的表示自然数,应使用整数类型B)若要保存带有多位小数的数据,应使用双精度类型C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型(17)若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是 A A)1B)0C)2D)不知道a的值,不能确定(18)以下选项中与if(a==1)a=b; else a++;语句功能不同的switch语句是B A)switch(a){case:a=b;break;default:a++;}B)switch(a==1){case 0:a=b;break;case 1:a++;}C)switch(a){default:a++;break;case 1:a=b;}D)switch(a==1){case 1:a=b;break;case 0:a++;}(19)有如下嵌套的if语句if (a<b)if(a<c)k=a;else k=c;elseif(b<c)k=b;else k=c;以下选项中与上述if语句等价的语句是C A)k=(a<b)?a:b;k=(b<c)?b:c;B)k=(a<b)?((b<c)?a:b):((b>c)?b:c);C)k=(a<b)?((a<e)?a:e):((b<e)?b:c);D)k=(a<b)?a:b;k=(a<c)?a:c;20)有以下程序 A #include<s七dio.h>main(){in i,j,m=1;for(i=1;i<3;i++){for(j=3;j>O;j--){if(i*j)>3)break;m=i*j;}}printf("m=%d\n",m);}程序运行后的输出结果是A)m=6B)m=2C)m=4D)m=5(21)有以下程序#include(stdio.h>main(){int a=l;b=2;for(;a<8;a++){b+=a;a+=2;}printf("%d,%d\n",a,b);}程序运行后的输出结果是A)9,18B)8,11C)7,11D)10,14(22)有以下程序,其中k的初值为八进制数#include <stdio.h>main(){int k=011;printf("%d\n",k++);}程序运行后的输出结果是A)12B)11C)10D)9(23)下列语句组中,正确的是A)char *s;s="Olympic";B)char s[7];s="Olympic";C)char *s;s={"Olympic"};D)char s[7];s={"Olympic"};(24)以下关于return语句的叙述中正确的是A)一个自定义函数中必须有一条return语句B)一个自定义函数中可以根据不同情况设置多条return语句C)定义成void类型的函数中可以有带返回值的return语句D)没有return语句的自定义函数在执行结束时不能返回到调用处(25)下列选项中,能正确定义数组的语句是A)int num[0..2008];B)int num[];C)int N=2008;int num[N];D)#define N 2008int num[N];(26)有以下程序#include <stdio.h>void fun(char *c,int d){*c=*c+1;d=d+1;printf("%c,%c,",*c,d);main(){char b='a',a='A';fun(&b,a);printf("%e,%e\n",b,a);}程序运行后的输出结果是A)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B(27)若有定义int(*Pt)[3];,则下列说法正确的是A)定义了基类型为int的三个指针变量B)定义了基类型为int的具有三个元素的指针数组ptC)定义了一个名为*pt、具有三个元素的整型数组D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组(28)设有定义double a[10],*s=a;,以下能够代表数组元素a[3]的是A)(*s)[3]B)*(s+3)C)*s[3]D)*s+3(29)有以下程序#include(stdio.h)main(){int a[5]={1,2,3,4,5},b[5]={O,2,1,3,0},i,s=0;for(i=0;i<5;i++)s=s+a[b[i]]);printf("%d\n", s);}程序运行后的输出结果是A)6B)10C)11D)15(30)有以下程序#include <stdio.h>main(){int b [3][3]={O,1,2,0,1,2,O,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=ij<=1;j++)t+=b[i][b[j][i]];printf("%d\n",t);}程序运行后的输出结果是A)1B)3C)4D)9(31)若有以下定义和语句char s1[10]="abcd!",*s2="\n123\\";printf("%d %d\n", strlen(s1),strlen(s2));则输出结果是A)5 5B)10 5C)10 7D)5 8(32)有以下程序#include <stdio.h>#define N 8void fun(int *x,int i){*x=*(x+i);}main(){int a[N]={1,2,3,4,5,6,7,8},i;fun(a,2);for(i=O;i<N/2;i++){printf("%d",a[i]);}printf("\n");}程序运行后的输出结果是A)1313B)2234D)1234(33)有以下程序#include <studio.h>int f(int t[],int n);main{ int a[4]={1,2,3,4},s;s=f(a,4); printf("%d\n",s);}int f(int t[],int n){ if(n>0)return t[n-1]+f(t,n-1);else return 0;}程序运行后的输出结果是A)4B)1OC)14D)6(34)有以下程序#include <stdio.h>int fun(){ static int x=1;x*2; return x;}main(){int i,s=1,for(i=1;i<=2;i++)s=fun();printf("%d\n",s);}程序运行后的输出结果是A)OB)1C)4D)8(35)有以下程序#include <stdio.h>#define SUB(a)(a)-(a)main(){ int a=2,b=3,c=5,d;d=SUB(a+b)*c;printf("%d\n",d);}程序运行后的输出结果是A)0C)-20D)10(36)设有定义:struct complex{ int real,unreal;} data1={1,8},data2;则以下赋值语句中错误的是A)data2=data1;B)data2=(2,6);C)data2.real=data1.real;D)data2.real=data1.unreal;(37)有以下程序#include <stdio.h>#include <string.h>struct A{ int a; char b[10]; double c;};void f(struct A t);main(){ struct A a={1001,"ZhangDa",1098.0};f(a); printf("%d,%s,%6.1f\n",a.a,a.b,a.c);}void f(struct A t){ t.a=1002; strcpy(t.b,"ChangRong");t.c=1202.0;} 程序运行后的输出结果是A)1001,zhangDa,1098.0B)1002,changRong,1202.0C)1001,ehangRong,1098.OD)1002,ZhangDa,1202.0(38)有以下定义和语句struct workers{int num;char name[20];char c;struct{int day; int month; int year;}s;};struct workers w,*pw;pw=&w;能给w中year成员赋1980的语句是A)*pw.year=198O;B)w.year=1980;C)pw->year=1980;D)w.s.year=1980;(39)有以下程序#include <stdio.h>main(){ int a=2,b=2,c=2;printf("%d\n",a/b&c);}程序运行后的输出结果是A)OB)1C)2D)3(40)有以下程序#include <stdio.h>main(){FILE *fp;char str[10];fp=fopen("myfile.dat","w");fputs("abc",fp);fclose(fp);fpfopen("myfile.data","a++");fprintf(fp,"%d",28);rewind(fp);fscanf(fp,"%s",str); puts(str);fclose(fp);}程序运行后的输出结果是A)abcB)28cC)abc28D)因类型不一致而出错二、填空题(1)一个队列的初始状态为空。

201012真题C语言(含答案)

201012真题C语言(含答案)

0124、以下叙述正确的是()。

A.注释部分可单独占用一行,也可跟在语句的后面B.函数体定界符也可用一对方括号"[ ]"C.C语言源程序每一行就是一条语句D.由于C语言源程序都是从main()函数开始执行,所以main()函数必须位于程序文件最前面0125、下面叙述错误的是()。

A.所有语句都必须以分号";"结束B.语句是构成C语言源程序的基本单位C.C语言源程序必须包含一个main()函数D.注释部分在程序编译和运行时不起作用0126、main()函数的位置()。

A.必须位于程序文件的最前面B.必须位于用户自定义函数的前面C.可位于用户自定义函数之前,也可位于用户自定义函数之后D.必须位于用户自定义函数的后面0127、()是结构化程序设计应遵循的原则。

A.选用的控制结构可有多个入口和一个出口B.根据需要可使用嵌套基本控制结构表示程序逻辑C.应使用顺序、选择、循环三种基本控制结构表示程序逻辑D.为提高程序效率,应尽量使用Goto语句0128、描述一个算法可以有不同的方式,常见的有()。

A.汇编语言、高级语言和低级语言B.自然语言、流程图和伪代码C.机器语言、汇编语言和高级语言D.高级语言、自然语言和伪代码0224、下列不属于C语言数据类型的是()。

A.双精度型B.枚举类型C.复数类型D.长整型0225、下列合法的浮点数的是()。

A..65B.E2C.2E0.5D.1230226、下列不合法的字符常量的是()。

A.'\t'B.'\n'C.'\\'D."a"0227、下列()是不正确的常量形式。

A.'x5'B.1.6E6C.1E-2D."\0"0228、下列()是不合法的用户标识符。

A._f6B.divC.5xD._num0324、若已定义:int n=2; double x=2.5; 则下列表达式中不符合语法的是()。

2010年程序设计竞赛决赛试题

2010年程序设计竞赛决赛试题

2010年程序设计竞赛决赛试题学校姓名机号___________各位同学,你好!请仔细阅读以下的有关规定,再做题目:1、每题100分,满分300分;2、考试时间120分钟,开考半小时后方可提前交卷离开;3、在D:\根目录下,建立名称为:“机号+姓名拼音缩写”的文件夹,然后将你编写的源程序文件放在该文件夹内;4、全部考试完成后,将文件夹打包压缩上传;5、上机时如有问题应及时举手请监考老师解决;编程中,不能重启电脑,做完后上交作业并举手示意,经监考老师验收后,方可离开座位;6、严格按试题要求的数据格式进行输入、输出读写操作,避免电脑自动误判。

试题1 :(源程序名:one.pas,可执行文件名:one.exe)(输入文件名:one.in,输出文件名:one.out)【问题描述】某班级为了表彰在运动会上表现优秀者,班委会决定利用剩余的班费(整数)来购买奖品。

奖品的价钱分为6元、5元、4元三种,为了能使购买的奖品数量达到最多,请设计一个程序。

【输入样例1】one.in5【输出样例1】one.outmax:1【输入样例2】one.in7【输出样例2】one.outno:【输入样例3】one.in13【输出样例3】one.outmax:3试题2 :(源程序名:two.pas,可执行文件名:two.exe)(输入文件名:two.in,输出文件名:two.out)【问题描述】有n张牌,记为1,2,3,…,n(n<1000),应当怎样排放,才能使打开第一张是1,然后把两张依次放到末尾;打开上面一张刚好是2,再依次把三张依次放到末尾,打开上面一张,刚好是3;如此继续下去,直至打开最后一张是n。

【输入样例】two.in8【输出样例】two.out1 7 52 6 8 4 3试题3:(源程序名:three.pas,可执行文件名:three.exe)(输入文件名:three.in,输出文件名:three.out)【问题描述】求m/n小数点后100位的精确值,其中m,n的取值在integer 范围。

2010程序设计大赛决赛题及参考答案

2010程序设计大赛决赛题及参考答案
这四个字符类别分别为:
1.大写字母:A,B,C...Z;
2.小写字母:a,b,c...z;
3.数字:0,1,2...9;
4.特殊符号:~,!,@,#,$,%,^;
给你一个密码,你的任务就是判断它是不是一个安全的为50),密码仅包括上面的四类字符。
输出
对于每个输入的密码,判断这个密码是不是一个安全的密码,是的话输出YES,否则输出NO。
样例输入1
Linle@ACM
样例输出1
YES
样例输入2
^~^@^@!%
样例输出2
NO
C参考答案:
#include <stdio.h>
#include <string.h>
int main(){
char s[51], b[4];
int len, i, r;
scanf("%s", s);
len = strlen(s);
样例输入:
2591
样例输出:
2*9+5+1
参考答案:
importjava.util.Scanner;
publicclassPoint24 {
publicstaticvoidmain(String args[])
{
booleant =false;
int[] m =newint[4];
Scanner input=newScanner(System.in);
{
if(treeNames[j].compareTo(treeNames[j+1])>0)
{
String temp=treeNames[j];
treeNames[j]=treeNames[j+1];

二级C语言真题2010年09月及答案

二级C语言真题2010年09月及答案

2010年9月全国计算机等级考试二级笔试试卷C语言程序设计一、选择题下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的(1) 下列叙述中正确的是( )。

A) 线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B) 线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构 C) 线性表的链式存储结构所需要的存储空唰一般要少于顺序存储结构 D) 上述三种说法都不对(2) 下列叙述中正确的是( )。

A) 在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化 B) 在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化 C) 在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D) 上述三种说法都不对(3) 软件测试的目的是( )。

A) 评估软件可靠性 B) 发现并改正程序中的错误 C) 改正程序中的错误 D) 发现程序中的错误(4) 下面描述中,不属于软件危机表现的是( )。

A) 软件过程不规范 B) 软件开发生产率低 C) 软件质量难以控制 D) 软件成本不断提高(5) 软件生命周期是指( )。

A) 软件产品从提出、实现、使用维护到停止使用退役的过程 B) 软件从需求分析、设计、实现到测试完成的过程 C) 软件的开发过程 D) 软件的运行维护过程(6) 面向对象方法中,继承是指( )。

A) 一组对象所具有的相似性质 B) 一个对象具有另一个对象的性质 C) 各对象之间的共同性质 D) 类之间共享属性和操作的机制(7) 层次型、网状型和关系型数据库划分原则是( )。

A) 记录长度 B) 文件的大小 C) 联系的复杂程度 D) 数据之间的联系方式(8) 一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是( )。

A) 一对一 B) 一对多 C) 多对多 D) 多对一(9) 数据库设计中反映用户对数据要求的模式是( )。

A) 内模式 B) 概念模式 C) 外模式 D) 设计模式(10) 有三个关系R、S和T如下:则由关系R和S得到关系T的操作是( )。

CCF NOIP2010提高组(C语言)参考答案

CCF NOIP2010提高组(C语言)参考答案
1.①num <= 2(或num < 3或num == 2)
②go(LEFT_TO_RIGHT)
③pos[i] == LEFT(或LEFT == pos[i])
④time[i] + go(RIGHT_TO_LEFT)(或go(RIGHT_TO_LEFT) + time[i])
⑤pos[i] = LEFT
1.yyxy xx yyxy xyx xx xyx
2.12
3.18
四、阅读程序写结果(共4题,每题7分,共计28分)
1.16
2.1 2 3 5 6 7 9 10 14
3.4
4.1 6 9 5 4 8 3 2 7
五、完善程序(第1空2分,其余10空,每空2.5分,共计27分)
(说明:以下各程序填空可能还有一些等价的写法,各省可请本省专家审定和上机验证,不一定上报科学委员会审查)
⑥i - m
CCF NOIP2010提高组(C语言)参考答案与评分标准
一、单项选择题(共10题,每题1.5分,共计15分)
1
2
3
4
5
6
7
8
9
10
C
A
A
Dቤተ መጻሕፍቲ ባይዱ
B
D
C
B
C
B
二、不定项选择题(共10题,每题1.5分,共计15分,多选或少选均不得分)
1
2
3
4
5
6
7
8
9
10
ACD
AD
ABD
AC
B
B
D
D
BCD
ABC
三、问题求解(共3题,每题5分,共计15分)
本小题中,LEFT可用1代替,LEFT_TO_RIGHT可用1代替,RIGHT_TO_LEFT可用0代替。

2010年青岛市程序设计竞赛试题

2010年青岛市程序设计竞赛试题

2010年青岛市程序设计竞赛试题(小学组)说明:1、必须以题目中规定的文件名进行保存,并用FTP上传到指定文件夹中。

FTP上传使用说明在试题最后。

请选手每做完一道题及时上传一次,以确保因机器故障引起的文件丢失。

2、比赛时间为:60分钟,试题100分.3、使用竞赛规定的文件格式输入、输出.1、求和问题(程序文件名A1.PAS,20分)编程输入正整数N和M(N,M≤100),求N,M之间(包括N和M)所有5的倍数的数之和S。

输入(a1.In):一行,用空格隔开的两个正整数N和M(1≤N,M≤100)输出(a1.out):一行,和值样例1: 样例2:输入:1 10 输入:31 15输出:15 输出:90program jk;var I,s,n,m:integer;f1,f2:text;beginassign(f1,'a1.in');reset(f1);assign(f2,a1。

out’);rewrite(f2);read(f1,n,m);if n>m thenbegini:=n;n:=m;m:=I;end;for i:=n to m doif i mod 5=0 thens:=s+i;writeln(f2,s);close(f1);close(f2);end。

2、整数处理(程序文件名A2.PAS,20分)电脑老师让小明编程做一道题:输入一个正整数A(A≤1000000000),如果A的个位数字是5,则统计A能被5整除多少次?否则,统计A当中有多少个“0”?你能做吗?输入(a2。

in):一行,A(1≤A≤1000000000)输出(a2.out):一行,要求统计的结果。

(A的个位数是5,输出被5整除的次数;A的个位不足5,输出A中“0"的个数) program jk;var i,j,h,g,f,d,s,a,z,c,v,b,n,m:longint;x:array[1。

100] of integer;f1,f2:text;beginassign(f1,'a2.in');reset(f1);assign(f2,’a2。

华中科技大学 2010级信息学院C语言程序设计考试试题A

华中科技大学 2010级信息学院C语言程序设计考试试题A

级信息学院《C 语言程序设计》考试试题(A ) 一、判断下列语句或程序段的对错。

(“×”表示错,“√”表示对)(10分) (1) int x=0,y=x; ( ) (2) #define SIZE 10 ( ) int a[SIZE /2][SIZE]; (3) char *str ; str ="c\test"; ( ) (4) register int n; scanf(“%d ”,&n); ( ) (5) int x ,*px=&x ; float *p=px; ( ) (6) int (*pa)[8],a[6][8]; pa=*a++; ( ) (7) int x ,*px ; *px=&x; ( ) (8) int **pp,a[6][8]; pp=a; ( ) (9) float xyz.1=3; ( ) (10) int x =‘\x78’; ( ) 二、计算下列表达式的值(10分) 设unsigned int a=7, b=17, c=5, d=3; float f; (11) f =c/d; ( ) (12) (!(a+b)+c-1) | | (b+c/3) ( ) (13) (a&b)^( ~c | ~d) ( ) (14) f= (a-b>0 ? c/d : c%d ) ; ( ) (15) b=a++ , a%3 ( ) 三、程序改错(10分) 要求:不得改变程序框架,不得重写程序,无需文字说明,直接在代码上添加、删除和修改。

(16) 用指针的方法实现对输入的3个整数按从小到大的顺序输出显示 #include <stdio.h> void main(void) { int a,b,c;int *pa=&a,*pb=&b,*pc=&c;scanf("%d%d%d",&pa,&pb,&pc);院系________________班级________________姓名________________学号________________成绩________________if(*pa>*pb) swap( pa , pb);if(*pb>*pc) swap( pb , pc);printf("%d\t%d\t%d\n",*pa,*pb,*pc);}void swap(int *px,int *py){int *temp;temp =px;px =py;py =temp;}(17)统计N个字符串中大写字母和数字字符的个数#include <stdio.h>#define N 5void main(void){char string[N][80];char i;int CapitalCount , NumCount;for(i=1;i<=N;i++)scanf("%s",&string[i]);for(i=0;i<=N;i++)CapitalCount +=count(string[i],&NumCount);printf("CapitalCount=%d,NumCount=%d\n",CapitalCount,NumCount); }count(char *pstr , int *result){int temp,i;*result = temp=0;for(i=0 ; i<80 ; i++){if(pstr[i]>='A'&&pstr[i]<='Z')temp ++;if(pstr[i]>=0&&pstr[i]<=9)*result ++;}return temp;}四、程序填空(10分)(18)找N个字符串中最大字符串和最小字符串#include <stdio.h>#include <string.h>#define N 5char *GetMaxMinString( );char *GetMaxMinString( ){int a;char *max;;for(a=1;a<num;a++){if( )max =string[a];if( )*min =string[a];}return max;}void main(void){char string[N][80],*pmax,*pmin;int i;for(i=0;i<N;i++)gets(string[i]);pmax =GetMaxMinString( );printf("Max string is %s,Min string is %s\n",pmax,pmin);}(19)以下程序用二维数组保存多个字符串,用二级指针处理多个字符串的排序。

2010和2011年计算机c程序设计真题及答案

2010和2011年计算机c程序设计真题及答案

二O一O年硕士学位研究生招生入学考试试题考试科目:计算机程序设计代码:9271.填空题20题,每题1分1)程序的三种基本的控制结构是:顺序结构、选择结构、循环结构。

2)外部函数的储存类型是,它既可以在本编译单位中被调用,又可以在中被调用。

3)若a函数中调用了b函数,而b函数又调用了c函数,这种调用称为调用。

若a函数中调用了b函数,而b函数又调用了a函数,这种调用称为调用。

4)“*”称为指针运算符,“&”称为取值运算符。

5)表示结构体成员的“ . ”称为成员(分量)运算符,“ -> ”称为分量运算符。

6)如果调用fopen函数不成功,则函数返回值为0;如果调用fclose函数不成功,则函数返回值为EOF。

7)C++语言中有//和/*与*/ 二种注释方法。

8)在C++中用关键字 class来定义新的类。

9)若有以下定义,则不移动指针p,且通过指针p引用值98的数组元素的表达式是。

int w[10]={23,54,10,33,47,98,72,80,61,102}, *p=w;10)位运算:0x1a2c&0x1a79 的运算结果是(用八进位制形式写出)015050 。

2.程序填空题4题,每题5分1)下列程序的功能是计算1-10之间偶数之和,请填空。

#include <iostream.h>void main( ){ int a, b,i:a=0;b=0;for ( i=0;__i<=10_____;i+=2){ a+=i;(2) ;}cout<<“偶数之和为:”<<a<<endl;}2)下列程序是将一个正整数n的各个位向左循环移动4位,请在程序的横线上填写适当的内容。

#include <stdio.h>void main(void){ int k,n,a;scanf(“%d”,&n);k=n&0xf000;k= >>12 ;a=n<<4;a=k | a;printf(“n=%o\n a=%o\n”,n,a);}3)下面是字符串拷贝函数,请填空。

全国软件大赛C语言组试题一

全国软件大赛C语言组试题一

第一届全国软件专业人才设计与开发大赛题目选拔试题暨答案2010-12-29 22:58一、基础篇(50分)1、单选(每题1分,10小题共10分)1).执行下列程序中的输出语句后,x的值是______.main(){int x;printf(“%d\n”,(x=5*6,x*2,x+20));}A)30 B)60 C)50 D)802).在C语言中,下列选项属于合法的长整型常数的是_______.A)0L B)1234567 C)0.0234567 D)3.14159e33).若有定义:int a,b;char x,y;并有以下输入数据:14 22 XxYy(回车)则能给a赋整数14,给b赋整数22,给x赋字符x,给y赋字符y的正确程序段是________.A)scanf(“%d %d”,&a,&b);x=getchar();y=getchar();B)scanf(“%d%d %c %c”,&a,&b,&x,&x,&y,&y);C)scanf(“%d %d %c%c%c %c”,&a,&b,&x,&x,&y,&y);D)scanf(“%d%d %c %c”,&a,&b,&x,&y);4).当c的值不为0时,下列选项中能正确将c的值赋给变量a、b的是_______.A)c=b=a;B)(a=c)‖(b=c);C)(a=c)&&(b=c);D)a=c=b;5).语句printf(“%d\n”,strlen(“asd\n\x12\1\\”));的输出结果是______.A)9 B)11 C)7 D)86).下列程序的运行结果是________.main(){ int y=10;do { y- -;} while(- -y);printf(“%d\n”,y- -);}A)-1 B)1 C)8 D)07).阅读下面程序,该程序段的功能是_____.#include <stdio.h>main(){ int c[ ]={23,1,56,234,7,0,34},i,j,t;for(i=1;i<7;i++){ t=c[i];j=i-1;while(j>=0&&t>c[j]){ c[j+1]=c[j];j- -;}c[j+1]=t;}for(i=0;i<7;i++)printf(“%d ”,c[i]);putchar('\n');}A)对数组元素的升序排列B)对数组元素的降序排列C)对数组元素的倒序排列D)对数组元素的随机排列8).有如下程序:#define f(x)x*xmain(){ int i;i=f(4+4)/(2+2);printf(“%d\n”,i);}该程序执行后的输出结果是_______.A)28 B)21 C)16 D)49).下列程序的运行结果是_______.main(){ unsigned c1=0xff,c2=0x00;c1=c2|c1>>2;c2=c1^0236;printf(“%x,%x\n”,c1,c2);}A)0x3f,0XA1 B)3f,A1 C)ffff,61 D)3f,a110).有以下程序:#include <stdio.h>main(){ FILE *fp;int i=20,j=30,k,n;fp=fopen(“d1.dat”,“w”);fprintf(fp,“%d\n”,i);fprintf(fp,“%d\n”,j);fclose(fp);fp=fopen(“d1.dat”,“r”);fscanf(fp,“%d%d”,&k,&n);printf(“%d %d\n”,k,n);fclose(fp);}该程序运行后的输出结果是_______.A)20 30 B)20 50 C)30 50 D)30 20第一届全国软件专业人才设计与开发大赛题目选拔试题暨答案2010-12-29 23:002、多选(每题2分,共10题,共20分,错选,漏选均不得分)1).下列符号串中,不属于C语言合法标识符的有_____.A)_1_2_3 B)a-b-c C)int D)9cd2).下列选项中,没有构成死循环的程序段有_____.A)int i=100;B)for(;;)while(1){ i=i%100+1;if(i>=100)break;}C)int k=0;D)int s=36;do { ++k;} while(k>=0);while(s);——s;3).下列判断正确的是_______.(知识点10.3)A)char *a=“china”;等价于char *a;*a=“china”;B)char str[6]={“china”};等价于char str[ ]= {“china”};C)char *s=“china”;等价于char *s;s=“china”;D)char c[4]=“abc”,d[4]=“abc”;等价于char c[4]=d[4]=“abc”;4).设有如下定义:char *s[2]={“abcd”,“ABCD”};则下列说法正确的有_____.A)s数组元素的值分别是“abcd”和“ABCD”两个字符串的首地址B)s是指针数组名,它含有两个元素分别指向字符型一维数组C)s数组的两个元素分别存放的是含有四个字符的一维字符数组中的元素D)s数组的两个元素中分别存放了字符'a'和'A'的地址5).若有以下说明:int a[5][9];则下列选项中对数组元素a[i][j]的引用错误的有_______.(0<=i<4,0<=j<9)A)*(&a[0][0]+9*i+j)B)*(a+i)(j)C)*(*(a+i)+j)D)*(a[i]+j)6).若有定义:char *st=“how are you!”;下面程序段正确的有_____.(知识点:7.3)A)char a[11],*p;strcpy(p=a+1,&st[4]);B)char a[11];strcpy(++a,st);C)char a[11];strcpy(a,st);D)char a[ ],*p;strcpy(p=&a[1],st+2);7).设有以下说明语句:Struct stu{ int a;float b;}stutype;则下列叙述正确的有_______.A)struct是结构体类型的关键字B)struct stu是用户定义的结构体类型C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名8).设有定义语句:int x[6]={2,4,6,8,5,7},*p=x,i;要求依次输出x数组6个元素中的值,下列选项中能完成次操作的语句有_______.A)for(i=0;i<6;i++)printf(“%2d”,*(p++));B)for(i=0;i<6;i++)printf(“%2d”,*(p+i));C)for(i=0;i<6;i++)printf(“%2d”,*p++);D)for(i=0;i<6;i++)printf(“%2d”,(*p)++);9).下列叙述正确的有_____.A)函数可以嵌套定义,但不能嵌套调用B)函数可以嵌套调用,也可以嵌套定义C)函数不可以嵌套定义,但可以递归调用D)函数可以嵌套调用,但不能嵌套定义10).下列选项中可以将变量n清零的表达式有_______.A)n=n&~n B)n=n&0 C)n=n^n D)n=n|n第一届全国软件专业人才设计与开发大赛题目选拔试题暨答案2010-12-29 23:03二、智力题(30分)1、单选题:(每小题4分,5小题,共20分)1)给你8颗小石头和一架托盘天平。

2010年程序设计大赛试题

2010年程序设计大赛试题
X:\Map.dat 就是这样一个文件,它保存着高、宽各 128 像素的一幅图像,图像内容是黑色背景上有一个白色的实心锐角三角形,一个 0 表示一个黑色像素,一个 1 表示一个白色像素。
编写程序P7,实现以下功能:
1、从文件 X:\Map.dat 把数据读到 128 行 128 列的二维数组 datas 中。
编写程序P6,先从键盘依次输入重量限额L(整数)和总件数N(0<N<16),再输入N个重量值(整数),请在这N件物品中选择若干件,它们的重量之和不超过L,而且最接近L,然后在屏幕上输出所选物品的总重量。
第7题
(本题20分)
屏幕上的图像是由按行、列整齐排列的小点(像素)组成的,如果用不同数值来表示像素的不同颜色,那么,屏幕上一个矩形区域的图像就可以保存到一个二维数组中,数组的一个元素对应一个像素。如果逐行、逐个地把数组元素保存到一个文件中,也就把图像保存到了文件中。
如果存在匹配,在屏幕上输出数据串A中的匹配起始位置(开头的数据位置是1而不是0),否则输出0。
第6题
(本题20分)
一位旅客希望携带一批物品上飞机,但由于携带重量有限额,他只能Байду номын сангаас中选择一部分。怎样选择才能尽可能用足限额?这是个至今尚未找到好的计算方法的困难问题,但在物品件数不多时,我们可以用计算机搜索出最佳方案。
第1题
(本题6分)
编写程序P1,从键盘输入一个正整数N,把N分解为两个尽可能接近的因数,在屏幕上按升序输出这两个因数,用一个空格分隔。
第2题
(本题10分)
编写程序P2,先从键盘输入正整数N(N<10),再输入N个正整数,然后在屏幕上显示这N个正整数的最小公倍数。

2009-2010C程序设计考试试题

2009-2010C程序设计考试试题

2009-2010年C程序设计考试试题一.单项选择题:下面每题的选项中,只有一个是正确的,请将正确答案填在横线上。

(本题共15小题,每小题2分,共30分)1、在C语言中(以16位PC机为例),5种基本数据类型的存储长度的排列顺序为______。

A char<int<long int<=float <doubleB char=int <long int <=float <doubleC char < int<long int = float=doubleD char=int =long int <=float <double2、若有代数式,则正确的C语言表达式是______。

A sqrt (fabs (pow (y,x)+log (y)))B sqrt (abs (pow (y,x)+log (y)))C sqrt (fabs (pow (x,y)+log (y)))D sqrt (abs(pow (x,y)+log (y)))3、以下关于运算符优先顺序的描述正确的是______。

A 关系运算符<算术运算符<赋值运算符<逻辑运算符B逻辑运算符<关系运算符<算术运算符<赋值运算符C 赋值运算符<逻辑运算符<关系运算符<算术运算符D算术运算符<关系运算符<赋值运算符<逻辑运算符4、若w=1 ,x=2, y=3 ,z=4,则条件w < x ? x :y < z ? y :z表达式的值是______。

A 4B 3C 2D 15、C 语言中while 和 do-while 循环的主要区别是______。

A do?-while 的循环体至少无条件执行一次B while的循环控制条件比do-while的循环控制条件严格C do—while 允许从外部转到循环体内D do –while 的循环体不能是复合语句6、下程序段______。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2010年西北师范大学第四届程序设计大赛试题一、程序填空(共5题,每题5分,共25分)1.下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数,完成程序中下划线部分。

#include <stdio.h>main(){int i, j;for(i=0; ; i++){j=i*10+6;if( ) continue;printf("%d",j);}}2.以下函数把b字符串连接到a字符串的后面,并返回a中新字符串的长度。

完成函数中下划线部分。

Strapp(char a[], char b[]){int num=0,n=0;while(*(a+num)!= ) num++;while(b[n]){*(a+num)=b[n]; num++; ;}return(num);}3.下面函数用来在w数组中插入x,w数组中的数已按由小到大顺序存放,n 所指存储单元中存放数组中数据的个数。

插入后数组中的数仍有序。

完成函数中下划线部分。

void fun (char *w,int x,int *n){ int i,p;p=0;w[*n]=x;while (x>w[p]) ;for(i=*n;i>p;i--)w[i]= ;w[p]=x;++ *n;}4.下面的程序将输入字符中的小写字母转化成大写字母输出,其它字符按原样输出,当输入字符为“!”时程序结束。

完成程序中下划线部分。

#include <stdio.h>main(){char ch;printf("Input string(! to quit):");do{ch = getchar();if( ) ch = ch + 'A'-'a';putchar(ch);}while( );}5. The following program is to calculate the value of “e ” according to the formula ....!31!21!111++++=e , while the value of the last item must be less than 610-.#include <stdio.h>main(){int i;double e,item;;item=1.0;for (i=1; ;i++){item/=(double)i;e+= ;}printf("e=%f\n",e);}二、 程序理解(共5题,每题5分,共25分)1. 以下程序的运行结果是#include <stdio.h>void main(){int i,j,k=19;while (i=k-1){k-=3;if(k%5==0) { i++; continue; }else if(k<5) break;i++;}printf(“i=%d,k=%d\n ”,i,k);}2.运行以下程序,输入: AabD <ENTER>后,程序的运行结果是_______. #include <stdio.h>void main(){char s[81];int i=0;gets(s);while (s[i]!=…\0‟){if(s[i]<= ‟z‟&&s[i]>= ‟a‟) s[i]= ‟z‟+‟a‟-s[i];i++;}puts(s);}3.以下程序的运行结果是#include <stdio.h>#define F(k) k+3.14#define P(a) printf("a=%d\n", (int)(a))#define P1(a) P(a);putchar('\n');#define P2(a, b) P(a);P1(b);void main(){int x = 1;{int x = 2;P(x*F(2));}{for (; x < 10; x += 50)P2(x, 9.15*x+32);}}4.输入: this is a test.<ENTER>,以下程序的运行结果是#include <stdio.h>#define TRUE 1#define FALSE 0int change(char *c,int status);void main(){int flag=TRUE;char ch;do{ch=getchar();flag=change(&ch,flag);putchar(ch);} while(ch!=‟.‟);printf(…\n‟);}int change(char *c,int status){if(*c==‟‟) return TRUE;if(status&&*c<=‟z‟&&*c>=‟a‟) *c+=‟A‟-…a‟;return FALSE;}5.There are three text files f1,f2 & f3, each of them contains some characters as following:file name contentsf1 aaa!f2 bbb!f3 ccc!Compiling the following C source codes, and linking the related object codes, an executable command file ex35.exe will be produced. To execute the command at DOS prompt: ex12 f1 f2 f3<ENTER>,the output is: .#include <stdio.h>main(int argc, char *argv[]){FILE *fp;void sub(FILE *);int i=1;while (--argc>0)if ((fp=fopen(argv[i++],“r”))==NULL) {printf(“Cannot open file!\n”);exit(1);}else {sub(fp);fclose(fp);}}void sub(FILE *fp){char c;while((c=getc(fp))!=…!‟)putchar(c+1);}三、下面4个程序中,共有16处错误(包括语法错误和逻辑错误),请找出其中的错误,在出错位置处划线,并改正之,改正结果写在出错语句同行空白处。

(30分,每找对1个错误,加1分,每修改正确1个错误,再加1分。

只要找对15个即可,多找不加分。

)1.下面程序实现折半查找算法,当找到输入元素后显示其在数组中的下标。

#include <stdio.h>main(){int up=10, low=1, mid, found, find;int a[10]={1, 5, 6, 9, 11, 17, 25, 34, 38, 41};scanf("%d", find);printf("\n");while (up>=low ||!found){mid=(up+low)/2;if( a[mid] = find ){found=1;break;}else if(a[mid]>find)up=mid+1;elselow=mid+1;}if(found) printf("found number is %dth", mid);else printf("no found");}2.下面程序模拟骰子的6000次投掷,用rand函数产生1~6之间的随机数face,然后统计1~6每一面出现的次数存放到数组frequency中。

#include <stdlib.h>#include <time.h>#include <stdio.h>main(){int face, roll, frequency[7] = {0};srand(time[NULL]);for (roll=1; roll<=6000; roll++);{face = rand()%6 + 1;++frequency[Face];}printf("%4s%17s\n", "Face", "Frequency");for (face=1; face<=6; face++){printf("%4d%17d\n", face, frequency[face]);}}3.计算十个数据的平均值。

#include <stdio.h>void main(void){int i, sum;float avg;int sc[10], *p = sc;for (i=0, i<10, i++){scanf("%d", p);p++;sum += *p;}avg = sum / 10;printf("avg=%f\n", avg);}4.编程实现从键盘输入一个字符串,将其字符顺序颠倒后重新存放,并输出这个字符串。

(用字符数组实现)#include <stdio.h>#include <string.h>void Inverse(char rstr[])main(){char str[80];printf("Input a string:\n");gets(str);Inverse(str);printf("The inversed string is:\n");puts(str);}void Inverse(char rstr[]){int i,n;char temp;for(i=0, n=(strlen(rstr)); i<n; i++, n--){temp = rstr[i];rstr[i] = rstr[n];rstr[n] = temp;}}四、程序设计(共2题,每题10分)1.计算机中提供了长整型和双精度等能存储较大数的数据类型,但在有些时候,这样的数据类型不能满足实际应用的需求,比如大数的阶乘。

请编写程序,实现大数阶乘的算法。

相关文档
最新文档