2012夏季计算机编程实训题
2012年3月计算机二级C语言考试上机题编程部分整理汇总
1. 编程题将两个两位数的正整数a、b合并形成一个整数放在c中。
将a数的十位和个位数依次放在c数个位和十位上,b 数的十位和个位数依次放在c数的百位和千位上。
*c=(b%10)*1000+(b/10)*100+( a%10)*10+(a/10)*12. 编程题请编一个函数void fun(int tt[M][N], int pp[N]), tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。
二维数组中的数已在主函数中给出。
int i,j,max;for(j=0;j<N;j++){max=tt[0][j];for(i=0;i<M;i++)if(tt[i][j]>max)max=tt[i][j];pp[j]=max;3. 编程题请编写函数fun(),对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII值码升序排列。
编写完程序,运行程序后输入:字符串为Bdsihad,则排序后输出为应为Badhisd。
int fun(char *s, int num){char t;int i, j;for(i=1;i<num-2;i++)for(j=i+1;j<num-1;j++)if(s[i]>s[j] ; { t=s[i];s[i]=s[j]; s[j]=t;4. 编程题编写函数fun(),它的功能是求n以内(不包括n)同时能被5与11整除的所有自然数之和的平方根s,并作为函数值返回。
double s=0.0;int i;for(i=0; i<n;i++) if(i%5==0&&i%11==0)s=s+i;s=sqrt(s);return s;5. 编程题请编写函数fun(),它的功能是求Fibonacci数列中小于t的最大的一个数,结果由函数返回。
其中Fibonacci数列F(n)的定义为F(0)=0,F(1)=1F(n)=F(n-1)+F(n-2)int a=1,b=1,c=0,i;do{ c=a+b;a=b;b=c; }while (c<t); c=a;return c;6. 编程题请编写一个函数fun(),它的功能是计算并输出给定整数n的所有因子(不包括1与自身)的平方和(规定n的值不大于100)。
plc试题及答案
………………………………装……………………………………订……………………………………线……………………………………………………氏县中等专业学校 班 姓名 考生编号XXX 县中等专业学校2011—2012学年下期 11级电子《PLC 技术基础与编程实训》科目期末测试试卷适用班级:11级电子(1)、(2)班题号 一 二 三 四 五 六 七 八 合计 得分 评分员一、填空题(1分/空x37=37分)1、PLC 的中文全称 。
2、PLC 的基本结构由 、 和 组成。
3、PLC 采用 工作方式,用户程序的完成分为3个,阶段分别是 、 、 。
4、PLC 常用的编程语言有 、 和 等。
5、FX2N 的内部继电器编号采用的是 制,输入继电器编号为X000~X027共有 点。
6、PLC 中定时器的延时靠 计数实现,定时器的定时值等于 ,T150 K40的定时值为 。
7、FX2N 的通信口采用的是 口与计算机通信口COM 口连接。
8、PLC 及其扩展单元的电源电压是 V 。
9、三菱FN2X 系列PLC 的计数器有 和 , 主要用来对程序中反映的信号进行计数, 则用来对高于PLC 扫描频率的机外脉冲计数。
10、PLC 中的存储器分为 和 两种。
11、 指令是电路块与指令, 是电路块或指令,与and 、or 指令不同。
12、 指令是多路输出指令中的主控指令, 与其配合使用称为主控复位指令。
13、串联触点较多的电路应编在梯形图的 ,并联触点多的电路应放在梯形图的 。
14、堆栈操作指令有 、 和 。
15、PLC 常用的设计方法有 、 和 等。
二、选择题(1.5分/空x10=15分)1、用于将常闭触点与左母线相连的指令是A 、LDB 、LDIC 、AND D 、ANI 2、用于将常开触点与前面元件进行串联的指令是A 、LDB 、LDIC 、AND D 、ANI 3、不能用于PLC 编程的语言有A 、梯形图B 、状态转换图C 、 c 语言D 、 英语 4、步进指令仅对 有效。
2012c语言题库附答案(可编辑)
2012年C语言机房最新考试题库所属语言:C语言试卷方案:TC_1204092119试卷总分:100分共有题型:3种一、程序填空共2题(共计30分)第1题(15.0分)题号:70/*【程序填空】功能:约瑟夫环问题求解。
即有n个人围成一圈,顺序排号。
从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
#include#define n 50int mainint i,k,m,n,num[n],*p;printf "please input the total of numbers %d :", n ; scanf "%d",&n ;p num;/***********SPACE***********/for i 0;【?】;i++/***********SPACE***********/ * p+i 【?】;i 0;k 0;m 0;while m n-1/***********SPACE***********/ if 【?】! 0 k++;if k 3* p+i 0;k 0;m++;i++;if i n i 0;/***********SPACE***********/ while 【?】 p++;printf "%d is left\n",*p ;return 0;答案:答案1i i答案2i+11+i答案3* p+i * i+p答案4*p 00 *p第2题(15.0分)题号:34/*【程序填空】功能:输入某年某月某日,判断这一天是这一年的第几天?#includeint mainint day,month,year,sum,leap;printf "\nplease input year,month,day\n" ;scanf "%d,%d,%d",&year,&month,&day ;switch month /*从月份得出已过多少天*/case 1:sum 0;break;case 2:sum 31;break;case 3:sum 59;break;/***********SPACE***********/ case 4:【?】;break;case 5:sum 120;break;case 6:sum 151;break;case 7:sum 181;break;case 8:sum 212;break;case 9:sum 243;break;case 10:sum 273;break;case 11:sum 304;break;case 12:sum 334;break;default:printf "data error" ;break;/***********SPACE***********/【?】;/*再加上日期数*//***********SPACE***********/if year%400 0|| year%4 0【?】 /*判断是否闰年*/ leap 1;elseleap 0;/***********SPACE***********/if leap 1【?】sum++;printf "it is the %dth day.",sum ;return 0;答案:答案1sum 90答案2sum sum+day或sum day+sum或sum+ day答案3&&year%100! 0&&0! year%100或&& year%100! 0答案4&&month 2&&2 month二、程序改错共2题(共计30分)第1题(15.0分)题号:254/*【程序改错】功能:请编写函数fun,对长度为8个字符的字符串,将8个字符按降序排列。
2012年vb计算机考试试题及答案
2012年vb计算机考试试题及答案第一部分:选择题(共40题,每题2分,总分80分)1. VB是以下哪种类型的编程语言?A. 解释性编程语言B. 面向对象编程语言C. 编译型编程语言D. 结构化编程语言2. 在VB中,以下哪个符号用于表示不等于?A. !=B. <>C. ==D. =3. 下列关于VB的说法中,不正确的是:A. VB可以用于开发Windows应用程序B. VB是Visual Basic的缩写C. VB可以与数据库进行交互D. VB只能运行在Windows操作系统上4. 在VB中,以下哪个选项用于声明整数变量?A. DimB. IntC. IntegerD. String5. 以下哪个是VB中的逻辑运算符?A. +B. /C. &&D. >6. VB中的控件是用来进行什么操作的?A. 数据存储B. 用户界面交互C. 网络通信D. 文件操作7. 在VB中,以下哪个控件用于接收用户输入的文本?A. LabelB. ButtonC. TextBoxD. ComboBox8. 以下哪个事件是在VB窗体加载时触发的?A. MouseClickB. KeyPressC. LoadD. FormOpen9. VB中用于执行特定任务的代码块被称为什么?A. 函数B. 过程C. 类D. 对象10. 在VB中,以下哪个函数可以将字符串转换为整数?A. CInt()B. CStr()C. CDbl()D. CBool()11. VB中的数组是用来存储什么类型的数据?A. 字符串B. 整数C. 浮点数D. 所有以上类型的数据12. 在VB中,以下哪个选项用于打开一个对话框来选择文件?A. OpenFileDialogB. MessageBoxC. InputBoxD. SaveFileDialog13. VB中的Do While循环是什么类型的循环结构?A. 前测试循环B. 后测试循环C. 无限循环D. 选择循环14. 在VB中,以下哪个选项用于释放对象所占用的资源?A. UsingB. FreeC. DisposeD. End15. VB中的Try...Catch语句用于处理什么类型的错误?A. 语法错误B. 逻辑错误C. 运行时错误D. 编译时错误...(继续撰写剩余试题及答案)第二部分:主观题(共3题,每题40分,总分120分)请根据以下问题进行简答:问题一:请解释VB中的常用数据类型及其区别。
2012夏季计算机编程实训题
上海大学计算机学院夏季学期计算机编程实训题2012年6月目 录1. 基础题 (1)1.1 数据构造及其基本操作 (1)1.1.1 动态数组 (1)1.1.2 文件 (1)1.1.3 结构体 (2)1.2 链表及应用 (4)1.2.1 阅读并完成单向链表程序 (4)1.2.2 单向链表综合程序设计 (4)1.2.3 Josephus 问题 (5)2. 规范题 (6)2.1 最大公约数和最小公倍数 (6)2.2 指数函数值 (7)2.3 圆盘找数 (8)2.4 回文串 (9)2.5 单向链表 (9)2.6 正读反写 (11)2.7 字符串交换 (11)2.8 数组排序 (12)2.9 航空售票系统 (13)2.10 鞍点 (15)2.11 螺旋方阵 (16)2.12 三角形个数 (17)2.13 水仙花数 (18)2.14 统计字符数字空格和其它字符个数 (19)2.15 完全数 (19)2.16 24点 (20)2.17 Logistic 映射中的周期点 (21)2.18 验证3n+1问题 (22)2.19 Newton 迭代法解方程013=-Z (23)2.20 计算若干个整数的和 (24)1. 基础题通过本节基础题的训练,使学生进一步掌握C程序设计的数组、指针、链表和文件操作。
所涉及的语法主要包括:C语言中数组、指针、函数、结构体、链表、文件。
1.1 数据构造及其基本操作1.1.1 动态数组练习1.1 随机产生n个50~100之间的整数,输出其中与平均值最接近的元素的值及下标。
【要求】定义函数原型如下的功能函数,并在main函数中调用这些函数测试其功能,源程序文件名为“学号_01.c”。
①调用calloc或malloc函数创建动态数组,free释放动态数组说明:标准C语言中,在定义数组时,数组元素个数必须为常量(即在编译时能确定的值)。
而本题中的n为变量,是在程序运行时确定的,为了“既不浪费内存空间,又没有最大处理能力的限制”,应采用动态数组(相关标准函数原型在头文件<stdlib.h>中声明)。
2012全国计算机二级VB机试模拟题 (14)
1第1小题【审题分析】本题只需按题目要求画出控件,并设置相关属性。
【操作步骤】步骤1:新建一个"标准EXE"工程,按表95-1在窗体中画出控件并设置其相关属性。
表95-1步骤2:按要求将文件保存至考生文件夹中。
【主要考点】文本框控件。
第2小题【知识点播】列表框控件(ListBox)用于显示可供单一或多个选择的列表项,给列表框添加列表项既可以在设计阶段通过其List属性设置加入,也可在程序运行时使用AddItem方法加入。
在程序运行时删除列表框中的项目可以使用RemoveItem方法,其语法为:列表框.RemoveItem 索引值。
其中,"索引值"可以指定插入项在列表框中的位置,从0开始计数。
【审题分析】单击列表框中的某个项目,将触发其Click事件。
要实现单击列表框中的某一项,该项就从列表中消失的功能,只需在Click事件过程中编写删除项目的语句即可。
列表框的ListIndex属性可返回当前选择的项目的索引号,因此删除选中项目的语句为:Lst1.RemoveItem Lst1.ListIndex。
【操作步骤】步骤1:新建一个"标准EXE"工程,在窗体Form1中加入一个列表框,在属性设置窗口中将其Name属性设置为lstCity,在其List属性中添加四个项目,依次为"北京"、"上海"、"天津"和"重庆"。
注意:每输入完一项后按<Ctrl+Enter>键换行再输入下一项。
步骤2:打开代码编辑窗口,编写列表框的Click事件过程:参考代码:Private Sub lstCity_Click()lstCity.RemoveItem lstCity.ListIndexEnd Sub步骤3:按要求将文件保存至考生文件夹中。
【考试误区】本题应编写列表框控件的Click事件;同时注意,删除某一列表项使用RemoveItem,而不是Cls方法。
2012全国计算机二级VB机试模拟题 (18)
1第1小题【审题分析】要实现在程序运行时,单击命令按钮,使标签和文本框消失,在窗体上显示文本框中的内容,其实就是在命令按钮的单击事件过程中,设置标签和文本框的Visible属性值为False,用窗体的print方法将文本框的内容输出到窗体上。
【操作步骤】步骤1:新建一个"标准EXE"工程,在窗体上画一个标签、一个文本框和一个命令按钮,其属性及其值如表91-1所示。
表91-1步骤2:在代码编辑窗口,编写"显示"按钮的Click事件过程。
参考代码:Private Sub cmdDisplay_Click()Print txtInput.TextlblInput.Visible = FalsetxtInput.Visible = FalseEnd Sub步骤3:按要求将文件保存至考生文件夹中。
【主要考点】控件画法、简单事件编程。
第2小题【知识点播】①Date函数用于获取当前系统日期,Time函数用于获取当前系统时间。
②AutoSize属性用来确定是否根据Caption属性指定的标题自动调整标签的大小,可以设置为True或False。
【审题分析】本题只需在"日期"按钮的单击事件过程中,通过调用Date 函数在标签中显示当前系统日期;在"时间"按钮的单击事件过程中,通过调用Time函数在标签中显示当前系统时间。
【操作步骤】步骤1:新建一个"标准EXE"工程,按表91-2在窗体中画出控件并设置其相关属性。
表91-2步骤2:在代码编辑窗口编写以下事件过程。
参考代码:Private Sub cmdDate_Click()Label1.Caption = DateEnd SubPrivate Sub cmdTime_Click()Label1.Caption = TimeEnd Sub步骤3:按要求将文件保存至考生文件夹中。
2012全国计算机二级VB机试模拟题 (17)
1第1小题【知识点播】①窗体的标题是由其Caption属性设置,窗体的MaxButton 属性、MinButton 属性决定其标题栏是否显示最大化、最小化按钮,True表示显示,False表示不显示。
此外,通过修改窗体的BorderStyle属性(用于设置边框样式),也可实现窗体标题栏是否显示最大化、最小化按钮的效果,其中值设置为3时窗体具有固定大小,包含左侧控制框和标题栏,但没有最大化、最小化按钮。
②程序运行时,通常用单击命令按钮的方式来选中某个按钮,为了能够在按<Enter>键时也选中这个命令按钮,可将其Default属性设置为True,某些情况下为了能够在按<Esc>键时也能选中按钮,则需要将命令按钮的Cancel属性设置为True。
【审题分析】本题只需按题目要求画出标签、命令按钮控件并设置其和窗体相应属性。
【操作步骤】步骤1:新建一个"标准EXE"工程,按表92-1在窗体中画出控件并设置其相关属性。
表92-1步骤2:按要求将文件保存至考生文件夹中。
【特别提示】为使两个控件的大小相同,还可在选中控件后执行【格式】→【统一尺寸】→【两者都相同】命令。
【主要考点】窗体、命令按钮。
第2小题【知识点播】①Alignment属性用于确定文本框中文本的放置方式,其值可以设置为0(靠左,默认)、1(靠右)或2(居中)。
②FontSize属性用来将文本格式设置成相应的字号。
【审题分析】本题需分别在三个命令按钮的Click事件过程中,设置文本框的Alignment属性为对应值。
【操作步骤】步骤1:新建一个"标准EXE"工程,按表92-2在窗体中画出控件并设置其相关属性。
表92-2步骤2:在代码编辑窗口,分别编写3个按钮的单击事件过程。
参考代码:Private Sub cmdLeft_Click()txtComputer.Alignment = 0End SubPrivate Sub CmdCenter_Click()txtComputer.Alignment = 2End SubPrivate Sub CmdRight_Click()txtComputer.Alignment = 1End Sub步骤3:按要求将文件保存至考生文件夹中。
编程题库及详解答案
编程题库及详解答案编程题库是帮助学习者巩固编程知识、提高解决问题能力的重要工具。
以下是一些常见的编程题目及其详解答案。
1. 基础数据类型转换题目:编写一个函数,实现整数到浮点数的转换,并返回转换后的浮点数。
答案:在Python中,可以使用内置函数`float()`实现这一转换。
```pythondef int_to_float(num):return float(num)```2. 数组排序题目:给定一个整数数组,请编写一个函数对其进行排序。
答案:可以使用Python的内置排序方法`sort()`。
```pythondef sort_array(arr):arr.sort()return arr```3. 字符串反转题目:编写一个函数,实现字符串的反转。
答案:在Python中,可以使用切片操作来实现字符串的反转。
```pythondef reverse_string(s):return s[::-1]```4. 最大公约数题目:给定两个整数,编写一个函数计算它们的最大公约数。
答案:可以使用辗转相除法(欧几里得算法)来求解。
```pythondef gcd(a, b):while b:a, b = b, a % breturn a```5. 二分查找题目:在一个已排序的数组中,编写一个函数实现二分查找算法。
答案:二分查找算法可以高效地在有序数组中查找特定元素。
```pythondef binary_search(arr, target):left, right = 0, len(arr) - 1while left <= right:mid = (left + right) // 2if arr[mid] == target:return midelif arr[mid] < target:left = mid + 1else:right = mid - 1return -1```6. 斐波那契数列题目:编写一个函数,返回斐波那契数列的第n项。
2012年计算机二级VB上机试题及解题思路(第三套)
第03套1. 基本操作(2小题,每小题15分,共计30分)注意:下面出现的“考生文件夹”均为%USER%**********************************************************************请根据以下各小题的要求设计Visual Basic应用程序(包括界面和代码)。
(1)在名称为Form1的窗体上画一个名称为Frame1,标题为“目的地”的框架,在框架中添加三个复选框,名称分别为Check1、Check2、Check3,其标题分别是“上海”、“广州”、“巴黎”,其中“上海”为选中状态,“广州”为未选状态,“巴黎”为灰色状态,如图所示。
请画控件并设置相应属性。
注意:存盘时必须存放在考生文件夹下,工程文件名为sjt1.vbp,窗体文件名为sjt1.frm。
解题思路:启动Visual Basic系统,创建一个Form1窗体。
在该窗体上画一个框架控件,通过其属性窗口将名称设为Frame1,标题(Caption属性)设为“目的地”。
在F1框架中画三个复选框控件,通过其属性窗口将名称分别设为Check1、Check2、Check3,标题(Caption 属性)分别设为“上海”、“广州”、“巴黎”,“上海”的Value属性设为1,“巴黎”的Value属性设为2。
参考文件:c:\wexam\26990001\hlpsys\参考答案\sjt1.vbp、sjt1.frm、sjt1.vbw请把这些文件复制到c:\wexam\26990001中,然后打开sjt1.vbp文件并运行。
**********************************************************************(2)在名称为Form1的窗体上画一个名称为Picture1的图片框,其宽和高分别为1700、1900。
请编写适当事件过程,使得在运行时,单击图片框,则装入考生目录下的图形文件pic1.bmp,如图所示。
2012年夏上机考试题参考答案
int& Biggest(int& a,int& b,int& c)
{
if (a>b) {
return (a>c? a : c);
} else {
return (b>c? b : c);
}
}
#include <iostream>
using namespace std;
每当第i张牌冒完泡后,保证0至i张牌都是排好序的。这样当第n-1张牌冒完泡,
这n张牌就排好序了。
=========================================================================================
3 main函数实现了任意取13张牌,按各种比较方式排序,然后显示出来。
for(i=0;i<NUM;i++)
{Hale Waihona Puke poker.GetCard(cards[i]);
}
Poker::Sort(cards,NUM,0);
cout << "mode0: ";
for(i=0;i<NUM;i++)
{
cout << cards[i].ToString() <<" " ;
cout << "mode2: ";
for(i=0;i<NUM;i++)
{
cout << cards[i].ToString()<< " ";
2012年最新计算机国家二级考试编程题库最常考的98题
编程题1.请编写函数fun,其功能是:找出2×M整型二位数组中最大元素的值,并将此值返回调用函数#include <stdio.h>#define M 4int fun (int a[][M]){int i,j,max=a[0][0];for(i=0;i<2;i++)for(j=0;j<M;j++)if(max<a[i][j])max=a[i][j];return max;}main( ){ int arr[2][M]={5,8,3,45,76,-4,12,82} ;void NONO ();printf("max =%d\n", fun(arr)) ;2.根据以下公式求π的值(要求精度0.005)#include <stdio.h>#include <math.h>double fun ( double eps){double s=1.0,s1=1.0;int n=1;while(s1>=eps) /*当某项大于精度要求时,继续求下一项*/{s1=s1*n/(2*n+1); /*求多项式的每一项*/s=s+s1; /*求和*/n++;}return 2*s;}main( ){ double x;void NONO ();printf("Input eps:") ;scanf("%lf",&x); printf("\neps = %lf, PI=%lf\n", x, fun(x));3.求出1~1000之间能被7或11整除,但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。
#include <stdio.h>void fun (int *a, int *n){int i,j=0;for(i=1;i<=1000;i++) /*求1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数,并放入数组a中*/if((i%7==0||i%11==0)&&i%77!=0)a[j++]=i;*n=j;}main( ){ int aa[1000], n, k ;void NONO ( );fun ( aa, &n ) ;for ( k = 0 ; k < n ; k++ )if((k + 1) % 10 == 0) printf("\n") ;else printf("%5d", aa[k]) ;4.规定输入的字符串中只包含字母和*号。
2012年vb计算机考试试题及答案
2012年vb计算机考试试题及答案一、选择题(每题2分,共20分)1. 在Visual Basic中,以下哪个关键字用于声明一个过程?A. FunctionB. SubC. DimD. Call答案:B2. 在Visual Basic中,以下哪个控件用于显示文本,但不能编辑?A. TextBoxB. LabelC. ComboBoxD. ListBox答案:B3. 下列哪个选项不是Visual Basic的内置函数?A. LenB. MidC. SqrD. Sum答案:D4. 在Visual Basic中,以下哪个语句用于结束一个循环?A. NextB. LoopC. EndD. Exit答案:D5. 在Visual Basic中,以下哪个属性用于设置或返回一个控件的背景颜色?A. BackColorB. ForeColorC. TextColorD. BorderColor答案:A6. 在Visual Basic中,以下哪个事件用于在窗体加载时触发?A. LoadB. ClickC. DblClickD. MouseDown答案:A7. 在Visual Basic中,以下哪个关键字用于声明一个变量?A. DimB. ConstC. StaticD. All of the above答案:D8. 在Visual Basic中,以下哪个控件用于显示下拉列表?A. TextBoxB. ComboBoxC. ListBoxD. CheckBox答案:B9. 在Visual Basic中,以下哪个函数用于返回一个字符串的长度?A. LenB. StrC. UCaseD. LCase答案:A10. 在Visual Basic中,以下哪个属性用于设置或返回一个控件的前景色?A. BackColorB. ForeColorC. TextColorD. BorderColor答案:B二、填空题(每题2分,共20分)1. 在Visual Basic中,使用________关键字可以定义一个类。
2012全国计算机二级C上机试题2
第二十三套1. 程序填空给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数的返回值是1,失败是返回值是0.在复制的过程中,把复制的内容输出到终端屏幕。
主函数源文件名放在变量sfname中,目标文件放在变量tfname中。
第一处if((fs=fopen(source,”r”))==NULL)第二处while(!feof(fs))第三处fputc(ch,ft);2. 程序修改给定程序MODI1.C中函数fun的功能是:将长整型中每一位上为偶数的数依次取出,构成一个新数放在t中。
高位仍在高位,低位仍在低位。
/**found**/if(d%2==0)/**found**/s/=10;3. 程序设计函数fun的功能是:将两位正整数a、b合并形成一个新的整数放在c中。
合并的方式是:将a中的十位和个位依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的百位和个位上。
void fun(int a,int b,long*c){*c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10);第二十四套1.程序填空程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。
函数fun的功能是将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中的学号和姓名,最后输出修改后的数据。
第一处b=a;第二处strcpy(,”LiSi”)第三处for (i=0;i<3;i++)printf(“%6.2f”,b.score[i]);2. 程序修改给定程序MODI1.C中函数fun的功能是:从s所指字符串中删除所有小写字母c。
请改正程序中的错误,使它能计算出正确的结果。
/**found**/s[j++]=s[i];/**found**/s[j]=‟\0‟;3. 程序设计假定输入的字符串中只包含字母和*号。
请编写函数fun,它的功能是:将字符串的前导*号全部移到字符串的尾部。
大学计算机实操试题及答案
大学计算机实操试题及答案1. C语言基础试题:1.1. 下面的代码段输出结果是什么?```c#include <stdio.h>int main(){int a = 10;int b = 5;int c = a++ + b--;printf("%d\n", c);printf("%d\n", a);printf("%d\n", b);return 0;}```1.2. 使用循环语句打印出如下图形:***************```答案:1.1. 输出结果:```15114```解析:表达式`a++ + b--`中的`a++`表示先取a的值再对a进行自增运算,`b--`表示先取b的值再对b进行自减运算。
所以`c`的值为15,因为10 + 5 = 15。
a的值为11,因为a进行了自增运算。
b的值为4,因为b进行了自减运算。
1.2. 代码:#include <stdio.h>int main(){int i, j;for (i = 1; i <= 5; i++) {for (j = 1; j <= i; j++) {printf("*");}printf("\n");}return 0;}```输出结果:```*************```2. 数据结构试题:2.1. 给定以下结构体定义:```cstruct Book {char title[50];char author[50];int year;float price;};```请编写一个程序,创建并初始化三本图书,并按照价格的降序打印出来。
答案:2.1. 代码:```c#include <stdio.h>struct Book {char title[50];char author[50];int year;float price;};void sortBooks(struct Book books[], int n){int i, j;struct Book temp;for (i = 0; i < n - 1; i++){for (j = 0; j < n - i - 1; j++){if (books[j].price < books[j + 1].price) {temp = books[j];books[j] = books[j + 1];books[j + 1] = temp;}}}}int main(){struct Book books[3] = {{"Book 1", "Author 1", 2000, 19.99}, {"Book 2", "Author 2", 1998, 29.99}, {"Book 3", "Author 3", 2010, 9.99}}; sortBooks(books, 3);for (int i = 0; i < 3; i++){printf("Title: %s\n", books[i].title);printf("Author: %s\n", books[i].author); printf("Year: %d\n", books[i].year);printf("Price: $%.2f\n", books[i].price); printf("\n");}return 0;}```输出结果:```Title: Book 2Author: Author 2Year: 1998Price: $29.99Title: Book 1Author: Author 1Year: 2000Price: $19.99Title: Book 3Author: Author 3Year: 2010Price: $9.99```3. 数据库试题:3.1. 在MySQL数据库中创建一个名为"students"的表,包含以下字段:- id: 学生ID,整型,主键,自增- name: 学生姓名,字符串,最大长度为50- age: 学生年龄,整型- gender: 学生性别,字符串,最大长度为10答案:3.1. SQL语句:```sqlCREATE TABLE students (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),age INT,gender VARCHAR(10));```4. 网络通信试题:4.1. 编写一个TCP客户端程序,连接到指定的服务器地址和端口,并发送一条消息"Hello server!",然后接收并打印服务器返回的消息。
计算机程序设计员实操考核名题精选
计算机程序设计员实操考核名题精选导言计算机程序设计是IT行业中非常重要且受欢迎的职业之一。
作为一名计算机程序设计员,掌握和实践各种编程技术和解决问题的能力是必备的条件。
为了评估计算机程序设计员的实际工作能力,考核实操题目成为了许多招聘和选拔计算机程序设计员的常用方法。
在本文中,我们将介绍一些计算机程序设计员实操考核的名题精选,以帮助读者更好地了解这一领域的考核内容和要求。
名题精选名题一:编写一个简单的计算器程序要求编写一个简单的计算器程序,能够实现基本的四则运算,包括加减乘除。
用户输入算式后,程序能够计算并输出结果。
考核重点:程序的逻辑设计和算法实现能力。
名题二:编写一个在线商城购物车程序要求编写一个在线商城购物车程序,能够实现用户添加商品、删除商品和结算等功能。
程序需要能够记录用户的购物车信息,并能够计算总价格。
考核重点:数据结构和算法的运用能力。
名题三:解决常见排序算法问题要求通过编写程序实现常见的排序算法,包括冒泡排序、插入排序和快速排序。
程序需要能够对给定的一组数字进行排序,并输出排序结果。
考核重点:算法的实现和效率分析能力。
名题四:编写一个简单的登录注册系统要求编写一个简单的登录注册系统,能够实现用户的注册和登录功能。
用户注册时需要填写用户名和密码,并能够验证用户的身份;用户登录时需要输入已注册的用户名和密码,并能够判断登录是否成功。
考核重点:程序的逻辑设计和数据处理能力。
名题五:编写一个简单的文件管理系统要求编写一个简单的文件管理系统,能够实现对文件的创建、修改和删除等功能。
程序需要能够记录文件的基本信息,并能够对文件进行操作。
考核重点:文件操作和数据处理的能力。
总结计算机程序设计员实操考核名题精选中,我们介绍了一些常见的考核题目,包括编写计算器程序、在线商城购物车程序、解决排序算法问题、登录注册系统和文件管理系统。
这些题目涵盖了计算机程序设计的不同领域和技术要求,能够全面考察程序员的实际工作能力。
计算机程序设计员实操考核题集合
计算机程序设计员实操考核题集合引言计算机程序设计是计算机科学与技术领域中的重要内容之一,而实操考核是评价程序设计员实际能力的有效方式之一。
本文将介绍一些常见的计算机程序设计实操考核题,帮助程序设计员提高实际编码和解决问题的能力。
1. 数据类型与变量1.1 整数与浮点数题目:编写一个程序,接受用户输入的两个整数,计算它们的和、差、积以及商,并输出结果。
思路:使用输入函数获取用户输入的两个整数,然后分别对它们进行加、减、乘、除的运算即可。
注意事项:当输入的除数为零时,应给出错误提示。
1.2 字符串与列表题目:编写一个程序,用于统计一段文本中各个字符的频次,并输出字符及其频次。
思路:首先使用输入函数获取一段文本,然后利用字典数据结构统计文本中每个字符出现的频次,最后按照字符的顺序输出结果。
注意事项:可以忽略文本中的大小写差异。
2. 控制结构与循环2.1 条件语句题目:编写一个程序,用于判断一个年份是否是闰年。
思路:根据闰年的定义,年份可以被4整除但不能被100整除,或者可以被400整除即为闰年。
2.2 循环语句题目:编写一个程序,用于计算斐波那契数列的第n个数。
思路:利用循环语句或递归函数可以计算斐波那契数列。
根据斐波那契数列的定义,第1个数和第2个数都是1,从第3个数开始,每个数都是前两个数之和。
注意事项:为避免递归函数的效率问题,可避免在递归过程中重复计算已经计算过的数。
3. 函数与模块3.1 函数定义与调用题目:编写一个函数,判断一个数是否为素数。
思路:通过循环遍历2到开平方根范围内的数,判断是否能整除该数。
注意事项:0和1都不是素数。
3.2 模块导入与使用题目:编写一个程序,用于生成一个包含n个随机数的列表,并找出其中的最大值和最小值。
思路:使用random模块中的函数生成n个随机数,并分别找出最大值和最小值。
注意事项:可以使用列表的范围切片功能来取出最大值和最小值。
4. 文件处理与异常处理4.1 文件读写操作题目:编写一个程序,从一个文本文件中读取内容,并在控制台输出。
2012计算机三级pc上机题库最新
第一题:一、请编制程序,其功能是:将内存中由SOURCE指示的40个字节有符号数组成的数组分成正数和负数两个数组,并求这两个数组的数据个数,结果存放在RESULT指示的内存区域,存放形式为正数个数在前,其后跟正数数组元素,然后是负数个数及负数数组元素.例如:内存中有1EH,91H,74H,91H,42H,30H,81H,F3H,18H,25H结果为06H,1EH,74H,42H,30H,18H,25H,04H,91H,91H,81H,F3H部分程序已给出,其中原始数据由过程LOAD从文件INPUT1。
DA T中读入SOURCE开始的内存单元中。
运算结果要求从RESULT开始存放,由过程SA VE保存到文件OUTPUT1.DAT中。
填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
对程序必须进行汇编,并与IO.OBJ链接产生PROG1。
EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。
调试中若发现整个程序中存在错误之处, 请加以修改。
试题程序:EXTRN LOAD:FAR,SA VE:FAR N EQU 40STAC SEGMENT STACKDB 128 DUP(?)STAC ENDSDATA SEGMENTSOURCE DB N DUP(0)RESULT DB N+2 DUP(0)NAME0 DB 'INPUT1。
DA T',0NAME1 DB ’OUTPUT1.DAT',0NDATA DB N DUP(0)PDA TA DB N DUP(0)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,SS:STAC START PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DA TAMOV DS,AXMOV ES,AX ;置附加段寄存器LEA DX,SOURCE ;数据区起始地址LEA SI,NAME0 ;原始数据文件名MOV CX,N ;字节数CALL LOAD ;从’INPUT1。
2012下半年程序员考试真题及答案-下午卷
2012下半年程序员考试真题及答案-下午卷试题一【说明】本流程图用于计算菲波那契数列{a1=1,a2=1,…,an=an-1+an-2!n=3,4,…}的前n项(n>=2) 之和S。
例如,菲波那契数列前6项之和为20。
计算过程中,当前项之前的两项分别动态地保存在变量A和B中。
【流程图】阅读说明和流程图,填补流程图中的空缺(1)〜(5)(1)2或A+B(2)n(3)A+B(4)B-A(5)S+B菲波那契数列的特点是首2项都是1,从第3项开始,每一项都是前两项之和。
该数列的前几项为1,1,2, 3,5,8,…。
在流程图中,送初始值1—A,2—B后,显然前2项的和S应等于2,所以(1)处应填2 (或A+B)。
此时2→i (i表示动态的项编号),说明已经计算出前2项之和。
接着判断循环的结束条件。
显然当i=n时表示已经计算出前n项之和,循环可以结束了。
因此(2)处填n。
判断框中用“>”或“≥”的效果是一样的,因为随着i的逐步增1,只要有i=n结束条件就不会遇到i>n的情况。
不过编程的习惯使循环结束条件扩大些,以防止逻辑出错时继续循环。
接下来i+1→i表示数列当前项的编号增1,继续往下计算。
原来的前两项值(分别在变量A 和B中)将变更成新的前两项再放到变量A和B中。
首先可以用A+B—B实现(原A) + (原B)—(新B),因此(3)处填A+B。
为了填新A值(原来的B值),不能用B—A,因为变量B的内容已经改变为(原A) + (原B),而B-A正是((原A) + (原B))-(原A)=(原B),因此可以用B-A—A来实现新A的赋值。
这样,(4)处填B-A。
最后应是前n项和值的累加(比原来的S值增加了新B值),所以(5)处应填S+B。
填完各个空后,最好再用具体的数值来模拟流程图走几个循环检查所填的结果(这是防止逻辑上出错的好办法)。
试题二【说明】如果矩阵A中的元素AW]满足条件:A[ij]是第i行中值最小的元素,且又是第j 列中值最大的元素,则称之为该矩阵的一个马鞍点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上海大学计算机学院夏季学期计算机编程实训题2012年6月目 录1. 基础题 (1)1.1 数据构造及其基本操作 (1)1.1.1 动态数组 (1)1.1.2 文件 (1)1.1.3 结构体 (2)1.2 链表及应用 (4)1.2.1 阅读并完成单向链表程序 (4)1.2.2 单向链表综合程序设计 (4)1.2.3 Josephus 问题 (5)2. 规范题 (6)2.1 最大公约数和最小公倍数 (6)2.2 指数函数值 (7)2.3 圆盘找数 (8)2.4 回文串 (9)2.5 单向链表 (9)2.6 正读反写 (11)2.7 字符串交换 (11)2.8 数组排序 (12)2.9 航空售票系统 (13)2.10 鞍点 (15)2.11 螺旋方阵 (16)2.12 三角形个数 (17)2.13 水仙花数 (18)2.14 统计字符数字空格和其它字符个数 (19)2.15 完全数 (19)2.16 24点 (20)2.17 Logistic 映射中的周期点 (21)2.18 验证3n+1问题 (22)2.19 Newton 迭代法解方程013=-Z (23)2.20 计算若干个整数的和 (24)1. 基础题通过本节基础题的训练,使学生进一步掌握C程序设计的数组、指针、链表和文件操作。
所涉及的语法主要包括:C语言中数组、指针、函数、结构体、链表、文件。
1.1 数据构造及其基本操作1.1.1 动态数组练习1.1 随机产生n个50~100之间的整数,输出其中与平均值最接近的元素的值及下标。
【要求】定义函数原型如下的功能函数,并在main函数中调用这些函数测试其功能,源程序文件名为“学号_01.c”。
①调用calloc或malloc函数创建动态数组,free释放动态数组说明:标准C语言中,在定义数组时,数组元素个数必须为常量(即在编译时能确定的值)。
而本题中的n为变量,是在程序运行时确定的,为了“既不浪费内存空间,又没有最大处理能力的限制”,应采用动态数组(相关标准函数原型在头文件<stdlib.h>中声明)。
②void GetData(int *a, int n);功能:设置具有n个元素的数组a的各个元素值,要求元素值取自50至100之间的随机整数(提示:为了获得随机性更好的随机数,请用语句srand(time(NULL));设置随机数发生器的种子,然后调用原型为int rand();的函数,它产生0~RAND_MAX之间的随机整数。
需要包含头文件<stdlib.h>和<time.h>)。
③void Display(int *a, int n);功能:输出数组a的所有元素。
④double GetAverage(int *a, int n);功能:计算并返回包含n个元素的数组a的平均值。
⑤int GetIndex1(int *a, int n, double x);功能:获取与x的值最接近的数组元素的最小下标值。
⑥int GetIndex2(int *a, int n, double x);功能:获取与x的值最接近的数组元素的最大下标值。
1.1.2 文件练习 1.2 在文本文件records.txt中已存储学生信息(学生人数不超过N,可以认为#define N 60),包括学号、姓名、身高三个数据项(数据项之间用字符'\t'分隔,姓名中可能含有空格字符,每位学生的数据占一行),要求编程从文件中获取学生的学号和身高数据后,按身高从低到高的顺序排序,并输出排序后的学号、姓名、身高表。
【要求】首先用Windows系统的“记事本”或其他文本编辑软件编辑records.txt 文件,每行为学号(整数或数码字符串)、'\t'、姓名(不超过8个字符)、'\t'、身高(浮点型数据)、'\n'。
然后编写程序:定义函数原型如下的功能函数,并在main函数中调用这些函数测试其功能,源程序文件名为“学号_02.c”。
①char *fgetline(FILE *fp, char *str, int n, char delim);功能:从文件fp中读取字符串存入str,读取的字符数不超过n,或遇到delim指定的字符为止,并将该字符换成串结束标志字符。
函数返回所读到的字符串,若直接遇到文件结束则返回空地址(NULL)。
②int getRecs(char *filename, struct STUDENTS *s, int n);功能:从字符串filename为文件名所联系的文件中读取数据到结构体数组s中,最多读取n个元素,返回实际读取的元素个数。
③void Sort(struct STUDENTS *s, int n);功能:对结构体数组s按身高从低到高排序。
④void Display(struct STUDENTS *s, int n);功能:输出结构体数组s中所有元素的所有数据成员的值。
1.1.3 结构体练习1.3 已知头文件SeqList.h给出学生信息顺序表的类型定义和基本函数原型(用于函数声明);程序文件SeqList.c中给出基本函数定义。
(1) 顺序表类型定义typedef struct {int id; /* 学号 */char name[9]; /* 姓名 */double height; /* 身高 */int sex; /* 性别,0为男生,1为女生 */ } datatype;#define MAX 100typedef struct {datatype data[MAX]; /* 存放顺序表元素的数组 */int last; /* 表示data中实际存放元素个数*/} SeqList;(2) 基本操作函数的函数原型void InitList(SeqList *lp); /*置一个空表*/void CreateList(SeqList *lp); /*建一个学生顺序表*/void Sort_id(SeqList *lp); /*按学号排序*/void Error(char *s); /*自定义错误处理函数*/ void PrintList(SeqList *lp); /*输出学生表*/void Save(SeqList *lp, char *strname);/*保存学生顺序表到指定文件*/(3) 要求①阅读源代码文件SeqList.h和SeqList.c(见电子文档),理解顺序表类型SeqList和基本操作函数。
②采用多文件结构,另外编写一个程序(文件名为“学号_03.c”),并将SeqList.h 和SeqList.c移植到本程序中,完成如下测试:●从给定的学生信息文件records.txt中读取数据,创建一个包含学生学号、姓名(姓名中可能含有空格字符)、身高、性别的学生信息表;输出学生信息到屏幕;●对已建立的学生身高信息表按学号从小到大排序,并把结果写入到数据文件中(results.txt);●从键盘输入一位学生的相关信息插入到已排序的学生身高信息表中后仍然保持学号的有序性;●对新的学生身高信息表进行倒置,结果输出在屏幕;●从键盘输入一个身高值,统计与该身高相同的学生个数并输出在屏幕;●将原学生表拆分为男生身高信息表和女生身高信息表,分别输出在屏幕上。
在程序文件“学号_03.c”需再定义以下5个功能函数:(1) int Pause(char *prompt){printf("%s", prompt);return getch();}功能:以字符串prompt为提示信息输出,等待用户按任意键,并返回所按键的扫描码(注:getch函数并非标准C语言的函数,一般在Windows系列操作系统中的C语言集成开发环境都提供该函数,其原型在<conio.h>头文件中声明)。
(2) void Insert(SeqList *lp, datatype x);功能:在学号从小到大排序的学生表中插入值为x的学生仍保持学号的有序性。
(3) void Reverse(SeqList *lp);功能:对lp指向的顺序表进行倒置操作。
(4) int Count(SeqList *lp,double y);功能:统计学生表中身高值为y的学生数并返回。
功能:对原lp学生表拆分成男生身高表lpm与女生身高表lpfm。
1.2 链表及应用1.2.1 阅读并完成单向链表程序练习2.1 给定程序文件LinkList.h和LinkList.c及file4.c并将它们按MinGW Developer Studio集成开发环境组织成工程文件ex_04.msp。
请阅读、分析程序,并完成file4.c文件中待完成的3个函数的定义(要求将文件名“file4.c”改成“学号_04.c”,并修改工程文件):①int Count(struct Node head, double height_fm,double height_m);功能:统计head为头结点的学生链表中身高达标(女生身高、男生身高标准依次由第2、3个参数给定)人数并返回。
②void Split(struct Node *head, struct Node *hm, struct Node *hfm);功能:将head为头结点的学生链表拆分成男生链表hm与女生链表hfm。
③void Merge(struct Node *hm, struct Node *hfm, struct Node *head);功能:将男生链表hm与女生链表hfm,合并成一条链表head。
【思考问题】①头文件中应该编写什么内容,不能编写什么内容?②头文件中#ifndef … #endif的含义是什么,宏LINKLIST_H的作用是什么?③为什么有些函数的形式参数设计成指针,用于接收链表头结点的地址?而另一些函数却不需要传递地址,即采用单向的值传递?④链表的增、删、改、查等函数的算法步骤描述。
1.2.2 单向链表综合程序设计练习2.2 建一个带头结点的学生信息(学号、姓名、成绩)单向链表,按成绩降序排列,打印输出,并计算及格人数。
#define MAX_SIZE 20typedef struct student{int stunum, score;char name[MAX_SIZE];struct student *next;}Node, *LinkList;【要求】采用多文件结构(1个头文件,2个源程序文件),定义功能函数实现①初始化一个空链表;②从键盘输入数据(学号为非正数时结束),创建新结点添加到链表中;③释放所有结点;④输出所有结点的所有数据;⑤计算并返回链表的结点数;⑥计算及格(成绩不低于60分)的人数,输出及格率;⑦将链表分割成及格结点、不及格结点组成的两条链表;⑧在“学号_05.c”源程序文件中定义主函数,调用上述函数,测试其功能。