重庆市第二届程序设计大赛题目
- 格式:pdf
- 大小:162.01 KB
- 文档页数:10
二级C语言笔试试卷(A)1注意事项:1.一、二题为客观题,请将答案涂在机读答题卡上2.三、四、五、六题为主观题,请将答案做在答题纸上一、单项选择题。
(每题1分,共20分)1.在C程序旳函数调用时,主调函数中旳实参和被调函数中旳形参()。
(A)个数、次序必须相似,但数据类型可以不考虑(B)个数、次序和对应参数旳数据类型都应当相似(C)个数、次序和数据类型均可以不相似(D)对应参数数据类型应相似,但个数和次序可以不考虑2.如a为int型,则与体现式a等价旳C语言关系体现式是()(A) a>0 (B) a!=0(C) a==0 (D) a<0 3.循环语句for(a=0,b=0;(b!=45)| |(a<5);a++);旳循环次数是()(A) 4 (B) 3 (C) 5(D) 无数多次4.设有字符数组a,则对旳旳输入语句是()。
(A) gets('a');(B) scanf("%c",a);(C) scanf("%s",a);(D) gets("a");5. enumcolor{red,green,yellow=5,white,black};定义了一枚举类型。
编译程序为值表中各标识符分派旳枚举值依次为()。
(A)1、2、3、4、5(B)0、1、5、2、3(C)0、1、5、6、7(D)3、4、5、6、76.运行完下列程序后,在屏幕上旳内容是()。
void main (){ int a=0;a+=(a=12);printf ("%d\n",a);}(A)0 (B)6(C)12 (D)24 7.若x,y为实数类型旳变量,要判断x,y相等,最佳使用下列关系体现式()。
(A)x==y(B)x-y==0(C) fabs(x-y)<1e-8(D)labs(x-y)<1e-88.若有如下旳定义、阐明和语句,则值为101旳体现式是()。
重庆计算机二级c语言试题及答案一、选择题(每题2分,共40分)1. 在C语言中,以下哪个选项是正确的?A. 变量名可以以数字开头B. 变量名可以包含空格C. 变量名区分大小写D. 变量名可以包含特殊字符答案:C2. C语言中,以下哪个关键字用于定义一个函数?A. intB. returnC. voidD. function答案:A3. 下列哪个选项是C语言中的合法整数常量?A. 0x1AB. 0X1AC. 0x1aD. 0X1a答案:D4. C语言中,以下哪个选项不是合法的字符串常量?A. "Hello, World!"B. 'Hello, World!'C. "Hello\" World!"D. "Hello\nWorld!"答案:B5. 在C语言中,以下哪个选项是正确的?A. 所有变量必须在使用前声明B. 所有变量必须在函数开始时声明C. 变量声明可以在任何地方D. 变量声明只能在函数内部答案:A6. C语言中,以下哪个选项是正确的?A. 浮点数不能用于整数运算B. 浮点数的精度总是比整数高C. 浮点数的表示范围比整数小D. 浮点数可以直接与整数进行运算答案:D7. 在C语言中,以下哪个选项是正确的?A. 所有函数都必须有返回值B. 函数可以没有参数C. 函数可以有多个返回值D. 函数可以有多个返回类型答案:B8. C语言中,以下哪个选项是正确的?A. 数组的下标总是从1开始B. 数组的下标总是从0开始C. 数组的大小在运行时确定D. 数组的大小在编译时确定答案:D9. 在C语言中,以下哪个选项是正确的?A. 指针可以存储任何类型的数据B. 指针可以存储函数的地址C. 指针可以存储数组的地址D. 所有选项都是正确的答案:D10. C语言中,以下哪个选项是正确的?A. 所有变量的声明必须在函数的开始B. 变量的声明可以在代码的任何位置C. 变量的声明必须在代码块的开始D. 变量的声明只能在函数的开始或代码块的开始答案:D二、填空题(每题2分,共20分)1. 在C语言中,______关键字用于声明一个变量。
Visual FoxPro数据库程序设计(考试时间90分钟,满分100分)一、选择题(每小题2分,共70分)下列各题A),B),C),D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)程序流程图中指有箭头的线段表示的是[C]A)图元关系 B)数据流 C)控制流 D)调用关系(2)结构化程序设计的基本原则不包括[A]A)多态性 B)自顶向下 C)模块化 D)逐步求精(3)软件设计中模块划分应遵循的准则是[B]A)低内聚低耦合 B)高内聚低耦合C)低内聚高耦合 D)高内聚高耦合(4)在软件开发中,需求分析阶段产生的主要文档是[B]A)可行性分析报告 B)软件需求规格说明书C)概要设计说明书 D)集成测试计划(5)算法的有穷性是指[A]A)算法程序的运行时间是有限的 B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的 D)算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是[D]A)快速排序 B)冒泡排序C)直接插入排序 D)堆排序(7)下列关于栈的叙述正确的是[B]A)栈按“先进先出”组织数据 B)栈按“先进后出”组织数据C)只能在栈底插入数据 D)不能删除数据(8)在数据库设计中,将E-R图转换成关系数据模型的过程属于[C]A)需求分析阶段 B)概念设计阶段C)逻辑设计阶段 D)物理设计阶段(9)有三个关系R,S和T如下:B C Dh O k1R S TB C Da o k1b 1 n1B C Da o k1a 2 x1由关系R和S通过运算得到关系T,则应使用的运算为[D]A) 并 B) 自然连接 C)笛卡尔积 D)交(10)设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课程号,课名),选课SC(学号,课号,成绩),列表SC的关键字(键或码)为[C]A)课号,成绩 B)学号,成绩C)学号,课号 D)学号,姓名,成绩(11)在Visual Foxpro中,扩张名为mnx的文件是[D]A) 备注文件 B)项目文件 C) 表单文件 D)菜单文件(12)有如下赋值语句:a=”计算机”,b=”微型”,结果为”微型机”的表达式是[D]A)b+LEFT(a,3) B)b+RIGHT(a,1)C)b+LEFT(a,5,2) D)b+RIGHT(a,2)(13)在Visual Foxpro中,有如下内存变量赋值语句:[B]X={^2001-07-28 10:15:20PM}Y=.F.M=5123.45N=$123.45Z=”123.24”执行上述赋值语句之后,内存变量X,Y,M,N和Z的数据类型分别是A) D、L、Y、N、C B)T、L、Y、N、CC) T、L、M、N、C D)T、L、Y、N、S(14)下列程序的运行结果是[D]SET EXACT ONs="ni"+space(2)IF s=="ni"IF s="ni"?"one"ELSE?"two"ENDIFELSEIF s="ni"?"three"ELSEENDIFENDIFRETURNA) one B) two C)three D)four(15)如果内存变量和字段变量均有变量名“姓名”,那么引用引用内存变量的正确方法是[D]A)M.姓名 B)M->姓名 C)姓名 D)A)和B)都可以(16)要为当前表所有性别为“女”的职工增加100元工资,应使用命令[B]A)REPLACE ALL 工资 WITH 工资+100B)REPLACE 工资 WITH 工资+100 FOR 性别=“女”C)CHANGE ALL 工资 WITH 工资+100D)CHANGE ALL 工资 WITH 工资+100 FOR 性别=“女”(17)MODIFY STRUCTURE命令的功能是[B]A)修改记录值 B)修改表结构C)修改数据库结构 D)修改数据库或表结构(18)可以运行查询文件的命令是[A]A)DO B)BROWSEC)DO QUERY D)CREATE QUERY(19)SQL语句中删除视图的命令是[B]A)DROP TABLE B)DROP VIEWC)ERASE TABLE D)ERASE VIEW(20)设有订单表order(其中包含字段:订单号,客户号,职员号,签订日期,金额),查询2007年所签订单的信息,并按金额降序排序,正确的SQL命令是[A]A) SELECT*FROM order WHERE YEAR(签订日期)=2007 ORDER BY 金额 DESCB) SELECT*FROM order WHILE YEAR(签订日期)=2007 ORDER BY 金额 ASCC) SELECT*FROM order WHERE YEAR(签订日期)=2007 ORDER BY 金额 ASCD) SELECT*FROM order WHILE YEAR(签订日期)=2007 ORDER BY 金额 DESC(21)设有订单表order(其中包含字段:订单号,客户号,职员号,签订日期,金额),删除2002年1月1日以前签订的订单记录,正确的SQL命令是[C]A) DELETE TABLE order WHERE 签订日期<{^2002-1-1}B) DELETE TABLE order WHILE 签订日期>{^2002-1-1}C) DELETE FROM order WHERE 签订日期<{^2002-1-1}D) DELETE FROM order WHILE 签订日期>{^2002-1-1}(22)下面属于表单方法名(非事件名)的是 [B]A) lnit B)Release C)Destroy D)Caption(23)下列表单的哪个属性设置为真时,表单运行时将自动居中[A]A) AutoCenter B) AlwaysOnTop C)ShowCenter D)FormCenter(24)下列关于命令DO FORM XX NAME YY LINKED 的叙述中,正确的是[C]A) 产生表单对象引用变量XX,在释放变量XX时自动关闭表单B) 产生表单对象引用变量XX,在释放变量XX时并不关闭表单C) 产生表单对象引用变量YY,在释放变量YY时自动关闭表单D) 产生表单对象引用变量YY,在释放变量YY时并不关闭表单(25)表单里有一个选项按钮组,包含两个选项按钮Option1和Option2,假设Option2没有设置Click事件代码,而Option1以及选项按钮组和表单都设置了Click事件代码。
2024年等级考试-计算机二级-Java语言程序设计考试历年真题常考点试题带答案(图片大小可任意调节)第1卷一.单选题(共20题)1.编译JavaApplet源程序文件产生的字节码文件的扩展名为()A.javaB.classC.htmlD.exe2.获取 InetAddress 对象的 IP 地址所用到的方法是A.etHostlPAddress()B.getHostlP()C.getHostAddress()D. getHost()3.下列叙述中正确的是哪一个( ) 。
A.在面向对象的程序设计中,各个对象之间具有密切的关系B.在面向对象的程序设计中,各个对象都是公用的C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小D.上述 3种说法都不对4.有整型数组: int[] x={12,35,8,7,2};, 则调用方法 Arrays.sort(x)后,数组 x 中的元素值依次是 ( ).A.2 7 8 12 35B.12 35 8 7 2C.35 12 8 7 2D.8 7 12 35 25.定义类头时能使用的修饰符是A. privateB.staticC.abstractD.protected6.开发软件时对提高开发人员工作效率至关重要的是 ( ) 。
A.操作系统的资源管理功能B.先进的软件开发工具和环境C.程序员的数量D.计算机的并行处理能力7.下列有关Java的叙述错误的是A.是—种强类型语言B.与平台无关C.可以使用汉字变量名D.不检查数组下标越界8.下述概念中不属于面向对象方法的是 () 。
A.对象、消息B.继承、多态C.类、封装D.过程调用9.设 int 型变量 a、b,float 型变量 x、y,char 型变量 ch 均已正确定义并赋值,正确的 switch 语句是A.switch (x + y) { ...... }B.switch ( ch + 1 ) { ...... }C. switch ch D) { ...... }D.switch ( a + b ) { ...... }10.关于包的描述错误的是A.包可以将相关的类和接口组织在一起,便于识别和管理B.包中的类可以访问同一包的其它类的私有成员C.不同包中的相同命名,不会产生冲突D.用修饰的顶级类和接口对包外代码可见11.在 Java 中, 表示换行符的转义字符是 () 。
第⼆届全国⼤学⽣算法设计与编程挑战赛(冬季赛)题解第⼆届全国⼤学⽣算法设计与编程挑战赛(冬季赛)只会做⽔题555 剩下的连题解也没看懂QAQ⽬录A 塔签到#include<iostream>using namespace std;int main(){char c1;int n=26; //设定塔的层数为26for(int i=1;i<=n;i++){ //对塔每⼀层按照规律进⾏构造。
//⾸先进⾏输出空格的操作:对于第i⾏,字符前⾯的空格个数为n-i个。
for(int j = 1;j<=n-i;j++)cout<<" ";for(int j=1;j<=i;j++){ //按照规律1,输出第1~第i个⼤写字母。
c1=j+'A'-1; //第j个⼤写字母为'A'+j-1cout<<c1; //输出第j个⼤写字母}for(int j=i-1;j>=1;j--){ //按照规律1,输出第i-1~第1个⼤写字母,注意是倒序c1=j+'A'-1;cout<<c1;}cout<<endl;//第i⾏输出结束,进⾏换⾏。
}return 0;}B ⽇记签到#include <bits/stdc++.h>using namespace std;const int N = 1e6 + 5;typedef long long LL;string s;int main() {s = "ibti lbtlovebte lbtlibtinbtnkbtkebtezbas jebte dosadnbtna ""ovakbtkebtemibtijaxaszxdbtddbtddbtddbtddbtddbtd";string res;for (int i = 0; i < s.size(); i++) {res.push_back(s[i]);if (s[i] == 'l' || s[i] == 'i' || s[i] == 'n' || s[i] == 'k' ||s[i] == 'e') {i += 3;}}cout << res << endl;return 0;}C 哥布林待补...D 质数区间待补...E 神仙爱采药贪⼼即可,如果背包满了,那么遇到1就把2换掉,否则就⼀直往背包⾥放即可#include <bits/stdc++.h>using namespace std;const int N = 1e6 + 5;typedef long long LL;#define int LLint v, num1, num2, res, now;string s;cin >> v;cin >> s;for (int i = 0; i < s.size(); i++) {if (s[i] == '1') {if (num1 + num2 * 2 < v) {num1++;now++;} else {if (num2) {num2--;num1++;}}} else {if (num1 + num2 * 2 + 2 <= v) {num2++;now++;}}res += now;}cout << res << endl;return 0;}F 但更爱字符串模拟...#include <bits/stdc++.h>using namespace std;typedef long long LL;int const MAXN = 2e5 + 10;int n, m, T;string s = "";string s0 = "";string t = "";string s1 = "";int main() {int len = 0;while (getline(cin, s0)) {int f = 0;int da = 0;int flag = 0;s0.push_back('\n');for (int i = 0; i < s0.size(); i++) {if ((s0[i] >= 'A' && s0[i] <= 'Z') ||(s0[i] >= 'a' && s0[i] <= 'z')) {s = s + s0[i];if (s0[i] >= 'A' && s0[i] <= 'Z') da++;continue;}if (s[0] >= 'a' && s[0] <= 'z' || da > 1 || s.size() <= 1) { if (len <= 1) {f = 1;cout << s1;if (len == 1) cout << " ";t = "";s1 = "";len = 0;} else {f = 1;cout << t;cout << " (" << s1 << ") ";t = "";s1 = "";len = 0;}cout << s;} else {if (s0[i] == ' ') {if (s0[i - 1] == ',' || s0[i - 1] == '.' ||s0[i - 1] == '!') {cout << " ";continue;}t = t + s[0];if (len >= 1) s1 += " ";s1 = s1 + s;len++;f = 0;} else {if (len < 1) {f = 1;cout << s1;if (len == 1) cout << " ";s1 = "";len = 0;cout << s;} else {f = 1;t = t + s[0];cout << t;if (s != "," || s != ".") s1 = s1 + " " + s;cout << " (";cout << s1;cout << ")";t = "";s1 = "";len = 0;}}}if (f) cout << s0[i];if (s0[i] >='a'&&s0[i] <='z'||s0[i] >='A'&&s0[i] <='Z')f = 1;s = "";da = 0;}}return 0;}贴个标程吧,感觉标程写的很清晰:#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<vector>using namespace std;vector <string> word;//存放单词和符号bool bigletter(char c){//判断是不是⼤写字母if(c>='A'&&c<='Z') return true;return false;}bool smallletter(char c){//判断是不是⼩写字母if (c>='a'&&c<='z') return true;return false;}bool bigletterword(string s){//判断是不是wordif (!bigletter(s[0])) return false;if (s.size()<=1) return false;for (int i=1;i<s.size();i++){if (!smallletter(s[i])) return false;}return true;}void work(){//处理每⼀个单词或符号int n=word.size();for (int i=0;i<n;i++){int inow=i;if (!bigletterword(word[i]))//如果不需要缩写则直接输出cout<<word[i];if (bigletterword(word[i])) {if (i!=n-1){//最后⼀位要么跟着前⾯的缩写,要么就是只有⼀个符合的所以不⽤缩写 if (word[i+1]==" "&&bigletterword(word[i+2])){int j;for (j=i;j<n;j++){if ((j-i)%2==0){if (!bigletterword(word[j])){j--;break;}else cout<<word[j][0];}else if (word[j]!=" ") break;}//j停在了最后符合要求的word的最后⼀位的后⾯⼀位cout<<" (";for (int k=i;k<j-1;k+=2)cout<<word[k]<<' ';cout<<word[j-1]<<')';inow=j-1;//i直接跳过缩写的部分}else cout<<word[i];}else cout<<word[i];}i=inow;}int main(){string s;while(getline(cin,s)){if (s.size()==0) break;//如果输⼊为空就停⽌string w="";//存放单词for (int i=0;i<s.size();i++){//循环sif (bigletter(s[i])||smallletter(s[i])) w+=s[i];//如果是字母则直接压到s⾥if (!bigletter(s[i])&&!smallletter(s[i])){//否则把单词压到word了,并把符号也压进去 word.push_back(w);w="";w+=s[i];word.push_back(w);w="";}}word.push_back(w);//把最后⼀个单词压进去work();word.clear();//清空wordcout<<endl;}return 0;//完美结束}G 猫腥草争夺⼤战状压DP,待补...H ⽆限⼭河印的故事倍增+字符串hash 待补...I 奇怪的传输机增加了模拟每⼀天的状态即可#include <bits/stdc++.h>using namespace std;const int N = 1e6 + 5;typedef long long LL;double n, now;int x, y;const double eps = 1e-8;// 和0做⽐较int sgn(double x) {if (fabs(x) < eps) return 0; // =0if (x < 0)return -1; // < 0elsereturn 1; // > 0}int main() {cin >> n >> x >> y;now = n;for (int i = 1; i <= y; i++) {now = 2.0 * now / 3.0;if (i >= x) {now = min(n, now + (n / 2));x = 1e5;}if(sgn(now-n/32)<0){cout << "N0!" << endl;printf("%d %.6lf\n", i, now);return 0;}}cout << "YE5!" << endl;printf("%.6lf\n", now);return 0;}J 奇怪的⼩鸭⼦也增加了数学题#include<bits/stdc++.h>using namespace std;const int N = 1e6 + 5;typedef long long LL;int main(){cin >> A >> B >> a >> b;int x = (A - a) / a / 2 + 1;int y = (B - b) / b / 2 + 1;cout << x * y << endl;return 0;}K 关于哥俩好的数字这件事暴⼒枚举数位和#include <bits/stdc++.h>using namespace std;const int N = 1e6 + 5;typedef long long LL;#define int LLvector<int> res[N];int get(int x) {int res = 0;while (x) {res += x % 10;x /= 10;}return res;}signed main() {for (int i = 1; i <= 1e7; i++) {res[get(i)].push_back(i);}int n;cin >> n;if(n==1)cout << 1 << endl;else if (n <= 10) {LL ress = 0;for (int i = 0; i < n; i++) {ress += res[n - 1][i];}cout << ress << endl;} else if (n >= 11) {LL ress = 1e18;for (int j = 9; j <= 20;j++){LL tmp = 0;for (int i = 0; i < n; i++) tmp += res[j][i];ress = min(ress, tmp);}cout << ress << endl;}return 0;}L 我们仍未知道那窝蛋的名字待补...M 出题⼈说这道题是⼀个签到题签到#include <bits/stdc++.h>using namespace std;int n;signed main() {cin >> n;if (n == 1)cout << "ADPC";elsecout << "12345";return 0;}。
四、读程序写出运行结果(每小题5分,共20分)1.有一表单程序的运行界面如图2所示。
以下是其文本框控件的valid事件代码。
程序运行后,在文本框输入“45673”。
请写出程序运行结果(文本框的新值)。
X=val(Thisform.text1.value)Y=100Do while x>0y=y-x%10x=int(x/10)enddoThisform.text1.value=str(y)2.设有数据表ST.DBF的结构内容如下:记录号编号(C)性别(C)成绩(N)1 001 男 862 122 女 623 225 男 584 220 女 795 010 女 89设计如图3所示表单,将st.dbf添加到表单的数据环境中,表单运行后,单击命令按钮“Command1”,标签Label1将显示什么?“Command1”命令按钮的click事件代码:X=1cj=成绩SCANIF=成绩>cjcj=成绩x=RECNO()ENDIFENDSCANGO xThisform.refreshz=学号+space(2)+性别+space(2)+allt(str(成绩)) bel1.caption=z3.下面程序运行时输入5,请写出程序执行结果。
SET TALK OFFCLEARINPUT “请输入层数” TO NFOR K=1 TO N?? SPACE(N-K)FOR J=1 TO K?? “*”ENDFOR?ENDFOR4.以下程序的运行结果是什么?主程序main.prgCleaa=1b=2c=3do sub1 with a?a,b,cretu*sub1.prgParapriv ca=10b=20c=30?a,b,cdo sub2retu*sub2.prgpriv aa=2b=2*a?a,b,cretu五、程序设计题(每小题10分,共20分)1.编写一个程序计算:S=1+2+3+……+N,N的值由用户确定。
重庆计算机二级c语言试题及答案一、选择题1. 在C语言中,以下哪个是合法的变量名?A. 2VarB. var2C. var_2D. _var2答案:B、C、D2. 下面哪个是正确的C语言语句?A. int a, b = 10;B. int a = 10, b;C. int a = 10, b = a;D. int a, int b = 10;答案:A、B、C3. 关于C语言中的sizeof运算符,下面哪个说法是正确的?A. sizeof(char)的结果是1B. sizeof(int)的结果是4C. sizeof(float)的结果是8D. sizeof(double)的结果是2答案:A、B4. 下面哪个不是C语言中的关键字?A. mainB. ifC. forD. while答案:A5. 下面哪个是C语言中的保留字?A. printfB. scanfC. returnD. continue答案:C、D二、填空题1. 在C语言中,能够表示整数常量的数据类型是______。
答案:int2. 在C语言中,用于定义宏的关键字是______。
答案:#define3. 在C语言中,两个整数相除的结果是______。
答案:整数相除的结果会舍去小数部分,只保留整数部分。
4. 在C语言中,用于声明常量的关键字是______。
答案:const5. 在C语言中,用于定义结构体类型的关键字是______。
答案:struct三、编程题1. 编写一个C语言程序,计算并输出1到100之间所有奇数的和。
```c#include <stdio.h>int main() {int sum = 0;int i;for (i = 1; i <= 100; i += 2) {sum += i;}printf("1到100之间所有奇数的和为:%d\n", sum);return 0;}```2. 编写一个C语言程序,判断一个输入的整数是否为质数。
重庆工学院第二届大学生程序设计大赛说明一、竞赛规则1. 比赛时间共4小时。
试题以中文表述。
考察内容以程序设计、数据结构、算法分析为主,为ACM(美国计算机协会)竞赛的命题形式。
3. 参赛学生可以携带诸如书、手册、程序清单等纸质参考资料。
4. 参赛学生不能携带任何可用计算机处理的软件或数据(如存储设备、计算器或电子辞典等)。
5. 参赛学生不能携带任何类型的通讯工具,包括无线电接收器、移动电话。
6. 在竞赛中,不同小组参赛选手之间不能交谈。
系统支持人员可以回答和系统相关的问题,例如解释系统错误信息。
7.结果上传服务器地址为:ftp:10.0.101.99 ,权限为上传,下载,删除。
用户名:cxxj 密码:3076 二、解题(程序运行)正确的判定裁判系统运行结果分为以下7 种:1. 正确:程序得到了正确的结果。
2. 输出格式错:虽然程序的结果是正确的,但是输出结果的格式与题目要求的不符,一般是由于在某些位置多输出或少输出了空格或空行。
3. 答案错误:程序运行完毕,但没有输出正确的结果。
4. 运行时错误:在程序的执行过程中,出现了堆栈溢出、访问无效内存单元、数组越界、计算中除以零等导致异常结束的情况。
5. 超过时间限制:程序没有在限定时间内执行完。
6. 超过内存设置:程序所使用的内存空间超过了题目的限定。
7. 无法编译:程序有语法错误,没有通过编译,请仔细检查。
注意:只有评测结果为“正确”的题才算正确,其余结果均为错误。
三、成绩(排名)的确定获胜原则:1、解题正确的数量多;2、如果选手解题数量相同,则完成时间少(交卷早);3、如果选手解题数量相同,完成时间少也相同(差距3分钟内),以算法效率高、注释清楚为佳;4、其它情况由校评判小组老师集体决定。
试题编号:重庆邮电大学2011~2012学年2学期C语言程序设计试卷(期末)(A卷)(闭卷)注意:所有试题的答案必须写在答题纸上。
一、基础知识测试题(本大题共16小题,24+24学时的学生请完成第1-15题,32+16学时的学生请完成第2-16题。
每小题4分,共60分)1请写出输出结果。
printf("%d, %d, %d, %d \n", 5%3, -5%3, -5%-3, 5%-3);2读程序,回答问题:#include <stdio.h>#include <math.h>void main(){float a,b,c,s,area; //问题(1):sizeof(float)的值是多少?printf(" Please input a,b,c: ");scanf(“%f,%f,%f”,&a, &b, &c);s=1.0/2*(a+b+c); // 问题(2):将1.0改为1,s的值会发生变化吗?area= sqrt(s*(s-a)*(s-b)*(s-c));printf("area = %f\n", area);}3读程序,回答问题:#include <stdio.h>void main(){ char cl,c2;printf(“请输入一个字符:”);cl=getchar(); //问题(1):getchar()函数的功能是什么?if(c1>=’a’&&c1<=’z’)c2=cl-32;//问题(2):c1>=’a’&&c1<=’z’与’a’<=c1<=’z’是否等价?printf(″%c,%d\n″,c2,c2);}4请写出输出结果。
printf(“%d %c\n”, ‘5’-‘0’, ‘5’-5);5读程序,回答问题:#include <stdio.h>void main(){ char grade;printf(“请输入一个字符:”);grade=getchar();switch(grade){case ‘A’: printf(“85~100\n”); break;//问题(1):break的作用是什么?case ‘B’: printf (“70~84\n”); break;case ‘C’: printf (“60~69\n”); break;case ‘D’: printf (“<60\n”); break;d efault: printf(“error\n”); break;}}//问题(2):输入A,程序的输出结果是什么?输入a,输出结果又是什么?6读程序,回答问题:#include <stdio.h>void main(){ int i;for(i=1;i<=6;i++){ if(i%2){printf(“#”);continue;}//问题(1):continue的含义是什么?printf(“*”);}printf(“\n”);}//问题(2):程序的输出结果是什么?7读程序,回答问题:#include <stdio.h>void main()//问题(1):程序的输出结果是什么?{ int i, j , s ; //问题(2):将下边的s=0移至此行,程序的输出结果又是什么?for(i=1;i<3;i++){ s=0;for (j=i;j<6;j++)s+=j;}printf(“%d\n” ,s);}8读程序,回答问题:void inv(int x[ ],int n){ int temp,i,j,m=(n-1)/2;for(i=0, j=n-1-i; i<=m; i++,j--){ temp=x[i]; x[i]=x[j]; x[j]=temp; }//问题(1):循环体里的语句的含义是什么?}//问题(2):函数的功能是什么?9读程序,回答问题:#include <stdio.h>void Inc_x( ){ int x=0;printf(“ x=%d ”,++x);}void Inc_y( ){ static int y=0;//问题(1):static的含义是什么?printf(“ y=%d ”,++y);}void main(){Inc_x( );Inc_y( );Inc_x( );Inc_y( );}//问题(2):程序的输出结果是什么?10读程序,回答问题:#include <stdio.h>#include <math.h>double S(double x, int n){if(n= =1)return x;elsereturn S(x,n-1)+pow(x,n);}void main(){printf(“%f”, S(2,3)); }//问题(1):程序的输出结果是什么?//问题(2):S函数被调用了几回?11读程序,回答问题:void fun(char s[]) //问题(1):形参char s[]用来存储什么?{int n=0,i;for(i=0;s[i]!=’\0’;i++)if(s[i]>=’0’ && s[i]>=’9’)s[n++]=s[i];s[n]=‘\0’;//问题(2):该语句的含义是什么?}12假设有如下两个定义:char x[]=”abcdefg”;char y[]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’};问题(1):两个数组所需要的内存字节数是否相同?问题(2):puts(x+2)和putchar(x[2])的输出结果分别是什么?13读程序,回答问题:#include <stdio.h>void main(){int x[]={1,2,3,4,5,6,7,8,9}; //问题(1):该语句的含义是什么?int s=0,i,*p=x;for(i=1;i<9;i+=2)s+=*(p+i);printf(“s=%d\n”,s); //问题(2):程序的输出结果是什么?}14读程序,回答问题:int *f(int *x,int *y) //问题(1):返回值是指针类型还是整数类型?{if(*x<*y) //问题(2):此行中,*的含义是什么?return x;elsereturn y;}15假设有定义:int m[3][3]={1,4,7,2,5,8,3,6,9};问题(1):m[1][2]的值是多少?问题(2):m[1]的含义是什么?16假设有定义如下:struct student{int number;char name[20];int score;};读下列程序,并回答问题。
试题1、数学黑洞(程序文件名maths.c/maths.cpp)【问题描述】任给一个4位正整数,其各位数位上的数字不全相同,将数字重新组合成一个最大的数与最小的数相减,重复这个过程,最多7步,必得6174。
对任给的4位正整数(各位数位上的数字不全相同),编程输出掉进黑洞的步数。
【输入】一行,一个4位正整数n(1000< n<9999)【输出】掉进黑洞的步数输入1234输出32、进制转换(程序文件名conver.c/conver.cpp)【问题描述】任给一个十进制整数n,及正整数m(m<=16且m≠10), 将n转换成m进制并输出。
【输入】一行,两个整数n,m(0 ≤ n ≤ 500000,2 ≤ m ≤ 16,且m≠10),中间用一个空格隔开,其中n 表示十进制数。
【输出】转换后的数【输入输出样例】输入255 8输出3773、分数线划定(程序文件名score.c/score.cpp)【问题描述】公务员选拔工作正在 A 市如火如荼的进行。
为了选拔优秀人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。
面试分数线根据计划录取人数的150%划定,即如果计划录取m名公务员,则面试分数线为排名第m*150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。
现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成绩。
【输入】第一行,两个整数n,m(5 ≤ n ≤ 5000,3 ≤ m ≤ n),中间用一个空格隔开,其中n 表示报名参加笔试的选手总数,m 表示计划录取的人数。
输入数据保证m*150%向下取整后小于等于n。
第二行到第 n+1 行,每行包括两个整数,中间用一个空格隔开,分别是选手的报名号k(1000 ≤ k ≤ 9999)和该选手的笔试成绩s(1 ≤ s ≤ 100)。
数据保证选手的报名号各不相同。