C语言上机试题及答案
,. ; . 实验一 Visual C++6.0 的使用及顺序结构程序设计 一、实验目的 1、掌握启动和退出 VC6 的方法。 2、熟悉 VC6 开发环境。 3、初步掌握简单程序的上机操作基本步骤, 熟悉 C 单文件程序的输入、 编译、 链接和运行过程。 4、初步掌握程序的编辑修改和调试。 5、熟练使用赋值运算、算术运算等表达式。 6、熟练使用标准输入、输出函数及各种数据类型的格式说明符。
二、实验内容
1、下面 C 语言程序,其功能是显示字符串 “欢迎同学们来到华北水院计算中心! ”。请同学们按照下面的实验指导学习 VisualC++6 . 0 的使用。
1. 启动 VisualC++6 . 0 开发环境 (1) 单 击 “开 始 ”按 钮 , 选 择 “程 序 ” —— 〉 “ Microsoft Visual Studio 6 . 0 菜 单 项 , 单 击“ MicrosoftVisualC++6 . 0”,屏幕出现标题为 “当时的提示 ”的窗口。 (2) 单击 “结束 ”按钮,关闭窗口,进入 VC6.0 开发环境的主窗口。
2. 使用 Visual C++6.0 对一个 C 程序进行编辑、编译、连接和运行。 ⑴分析 Visual C++6.0 中程序的开发过程与其它高级语言的开发过程相仿,都要经过编辑、编译、连接和运行四个步骤。 ⑵步骤 ①编辑 ,.
; . 图 1-2 编辑窗口 ②编译
编译是使用系统提供的编译器将文本文件 Exa.c 生成机器语言的过程,结果为 Exa.obj ,由于没有得到系统分配的绝对地址,还不能直接运行,如图 1-3 所示。选择 Build 菜单下的 Co mpile Exa.c ,计算机将完成对当前源程序的编译。按提示建立默认工程空间。编译无错时,将 源程序 Exa.c 编译为目标文件 Exa.obj 。 编译结果如图 1-4 所示。如果出现运行错误,应该分 析错误的原因,例如,是输入数据错误,还是代码错误;如果需要修改源程序文件,还需重 新编译、链接和执行。改正编译窗口下方指出的两个错误,直至编译成功,如图 1-5 所示。
图 1-1 New 对话框 编辑是将 C 源程序输入计算机的过程。在 Visual C++6.0 主界面下,点击 File 菜单,选择
New 菜单项,即可出现 New 对话框,如图 1-1 所示。在弹出窗口中的 Files 标签页下,选择 C ++ Source File 。在选项卡右面的 File 编辑框里输入文件名如 “ Exa.c ”, 在 Location 编辑框里输入文件路径,如 “d:test 。”点击 OK 按钮。将出现编辑窗口,如图 1-2 所示。 在图 1-2 所示的右端编辑窗口里输入以下 C 源程序并保存文件。
include void main() { printf(" } 欢迎同学们来到华北水院计算中心! "); ,.
; . 图 1-3 编译源程序 图 1-4 编译结果 ,.
; . 图 1-5 编译成功 ③连接 连接是将目标文件 Exa.obj 转换为可执行文件 Exa.exe 的过程。如图 1-6 所示选择 Build 菜单下的 Build Exa.exe 。连接无错时,将目标文件 Exa.obj 连接为 Exa.exe 。
④运行 图 1-6 源程序 运行是执行可执行文件 Exa.exe ,屏幕输出运行结果。如图 1-7 所示选择 Build 菜单下 的 Execute Exa.exe 。 ,.
; . 图 1-7 运行程序 运行结果如图 1-8 所示:
图 1-8 运行结果 3. 关闭系统工作区空间 单击“文件︱关闭工作区”菜单命令,关闭系统工作区空间。此时读者可以开始输入调试第 (2) 个 C 程序文件。
4. 退出 VC6.0 开发环境 单击主窗口右上角的“关闭”按钮,退出 VC6.0 。 ,. ; . 2、验证程序,熟悉 VC6.0 编程环境及调试程序的步骤。
已知三角形三条边长 a, b, c,计算三角形面积公式为 :
s=0.5*(a+b+c) area s(s a)( s b)( s c) 编写程序,要求从键盘输入 a, b, c 的值,计算并输出三角形面积。其中源程序代码如下: #include #include void main() { double a,b,c,s,area; printf("input a,b,c:"); scanf("%lf,%lf,%lf",&a,&b,&c); // 输入三角形的三条边s=(a+b+c)/2.0; area=sqrt(s*(s-a)*(s-b)*(s-c)) // 求三角形的面积prinf("area=%f\n",area); } 具体要求: ( 1 )在 VC6.0 环境中输入上述源程序。 ( 2 )对源程序进行编译连接,若有错误请调试修改。 (3) 运行程序,并输入三条边长,观察程序运行结果。 图 1-9 为程序运行时,当输入三条边长分别为 3 , 4, 5 时的运行结果,可作为参考。
图 1 - 9 上述程序的运行结果 ,.
; . 三、问题讨论
1、使用 printf 函数输出数据时如果想使数据左对齐该如何设置?
2、使用 scanf函数时,输入项为何必须是变量地址而不是变量名? 四、实验总结 1 总结本次实验完成情况、相关知识掌握情况 2 总结本次实验编辑、编译、连接、运行所取得的经验 3 分析本次实验出现的主要错误最直接原因
实验二 选择结构程序设计
一、实验目的 1 、 熟悉 VC6.0 编程环境。 2、 进 一步熟悉用 VC6.0 调试 C 语言源程序的过程。 3、 熟 练使用关系表达式和逻辑表达式作为 if 语句的条件判断。 4、 熟练掌握 if 语句和 switch 语句的使用方法。
二、实验内容 1、身高预测 每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明, 影响小孩成人后身高的因素有遗传、饮食习惯与坚持体育锻炼等。小孩成人后身高与其父母身高和自身性别密切相关。
设 faHeight 为其父身高, moHeight 为其母身高,身高预测公式为: 男性成人时身高 = (faHeight + moHeight) * 0.54(cm) 女性成人时身高 = (faHeight * 0.923 + moHeight) / 2(cm) 此外,如果喜爱体育锻炼,那么可增加身高 2%,如果有良好的卫生饮食习惯,那么可增加身高 1.5% 。 ,. ; . 编程从键盘输入你的性别(用字符型变量 sex 存储,输入字符 F 表示女性,输入字符 M 表示男性) 、父母身高(用实型变量存储, faHeight 为其父身高, moHeight 为其母身高) 、是否喜爱体育锻炼(用字符型变量 sports 存储,输入字符 Y 表示喜爱,输入字符 N 表示不喜爱) 、是否有良好的饮食习惯等条件(用字符型变量 diet 存储,输入字符 Y 表示喜爱,输入字符 N 表示不喜爱) ,利用给定公式和身高预测方法对你的身高进行预测。 程序代码: : #include main() { char sex; /* 孩子的性别 */ char sports; /* 是否喜欢体育运动 */ char diet; /* 是否有良好的饮食习惯 */ float myHeight; /* 孩子身高 */ float faHeight; /* 父亲身高 */ float moHeight; /* 母亲身高 */ printf(" 你是男孩 (M) 还是女孩 (F):"); scanf(" %c", &sex); /* 在前加一个空格,将存于缓冲区的回车符读入 */ printf(" 你爸多高 (cm):"); scanf("%f", &faHeight); printf(" 你妈多高 (cm):"); scanf("%f",&moHeight); printf(" 你喜欢运动吗 (Y/N)?"); scanf(" %c", &sports); /* 在前加一个空格,将存于缓冲区的回车符读入 */ printf(" 你有一个良好的生活习惯吗 (Y/N)?"); scanf(" %c", &diet); /* 在前加一个空格,将存于缓冲区的回车符读入 */ if (sex=='M'||sex=='m') myHeight = (faHeight + moHeight) * 0.54; else myHeight = (faHeight * 0.923 + moHeight)/2.0; if (sports =='Y'||sports=='y') myHeight = myHeight * ( 1 + 0.02); if (diet =='Y'||diet=='y') myHeight = myHeight * (1 + 0.015); printf(" 你将来的身高是 %f(cm)\n",myHeight); }
设计多组测试数据对程序进行测试,并观察运行结果。将程序的运行情况写在下面。 『运行结果: 』
自己弄运行信息结果吧 2、使用 switch 语句实现下面程序。
计算机二级C语言上机试题库和答案解析(100套)
完美WORD格式计算机二级 c 语言上机题库及答案内部资料,切勿外传!.第 1 套填空题请补充 FUN 函数,FUN 函数的功能是求 10 的阶乘。
注意:部分源程序给出如下。
请勿改动主函数 main 和其他函数中的任何内容,仅在 fun 函数的横线上填入所编写的若干表达式或语句。
试题程序:#include<stdio.h>longfun(int n){if ( 1 )return (n*fun( 2));return 3;}main(){printf("10!=%ld\n", fun(10));}第 1 处填空:n>1 或 1<n第 2 处填空:n-1第 3 处填空:1 或 11 或 1L改错题下列给定程序的功能是:读入一个整数 K(2〈=K〈=10000),打印它的所有因子(即所有为素数的因子)。
例如,若输入整数 2310,则应输出:2、3、5、7、11。
请改正程序中的错误,使程序能得出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <conio.h>#include <stdio.h>/********found********/IsPrime(intn);{int i,m;m =1;/********found********/for (i=2; i<n;i++)if !(n%i){m = 0;break;}return(m);}main(){int j, k;printf("\nplease enter an integer number between2and 10000:");scanf("%d", &k);printf("\n\nThe prime factor(s) of %dis(are):", k);for (j=2; j<k; j++)if ((!(k%j)) && (IsPrime(j)))printf(" %4d,", j);printf("\n");}第 1 处:Isprime(int n);应改为Isprime(int n)第 2 处:if !(n%i)应该为if(!(n%i))编程题M 个人的成绩存放在 score 数组中,请编写函数 fun,它的功能是:返回低于平均分的认输,并将低于平均分的分数放在below 所指的数组中。
C语言程序设计上机考试试题和参考答案
printf("Input str1:\n"); gets(str1); //1
printf("Input m and n:\n"); scanf("%d%d", &m, &n); //1
mystrcpy(str1, str2, m, n); //2 puts(str2); }
1、请按行读入数据 2、请按给定的函数原型编写程序,否则即使程序运行结果正确,也不给分。 参考答案
#include<stdio.h>
void Input(int a[][10], int n);
int Compute(int a[][10], int n);
main()
{
int n, a[10][10]; int sum;
//2
{
int i, flag = 0, sum = 0; //1
for (i = 1; i <= n / 2; i++) //1
{
if (n % i == 0)
//1
{
sum = sum + i; //1
}
}
if (sum == n)
//1
{
flag = 1;
}
return flag;
//1
} 3.(15 分)请按给定要求编程计算方阵的主对角线之和。其中方阵的输入请在 Input 函数实现,计算主对角之和请在 Compute 函数实现,计算结果请在主函数打印, 且给定的方阵最大为 10x10,方阵实际大小请在主函数读入。Input 函数和 Compute 函数的函数原型如下:
c语言上机考试训练题库及答案
7、编写程序,输入12个数,按照从后向前的顺序依次找出并输出其中能被7
整除的所有整数以及这些整数的和,在屏幕上输出
8.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
编写程序提示用户从键盘输入一个double类型的数使该数保留小数点后两位对第三位小数进行四舍五入处理然后在显示器上输出此数以便验证处理是否正确
上机考试习题集
1.编写程序,一次输入5个学生的3门课成绩,每输入一个学生的3门成绩后,立即统计并输出该学生的总分和平均分。
#include "stdio.h"
void main ()
{
int i,s,min,max,t,sum;
min=999; sum=0; max=0;
i=100;
while (i<=999)
{ s=i%100/10;
if ((i%4==0)&&s!=4)
{
if (i<min) min=i;
if (i>max) max=i;
sum+=i;
{
if(ch[i]>='A'&&ch[i]<='Z'||ch[i]>='a'&&ch[i]<='z')l++;
else
{
if(ch[i]>='0'&&ch[i]<='9') s++;
计算机二级C上机考试题库及答案
计算机二级C上机考试题库及答案一、单项选择题(每题1分,共10分)1. 在C语言中,以下哪个选项是正确的字符串定义方式?A. char str[] = "Hello, World!";B. char str[] = {'H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!', '\0'};C. char str[] = {"Hello, World!"};D. char str[] = "Hello, World!";答案:A2. 下列哪个函数用于将字符串s1复制到s2中?A. strcat(s1, s2);B. strcpy(s1, s2);C. strcmp(s1, s2);D. strncpy(s1, s2, n);答案:B3. 在C语言中,以下哪个关键字用于声明一个函数?A. intB. voidC. returnD. function答案:A4. 如果一个变量被声明为static int,那么这个变量的生命周期是?A. 只在函数调用期间B. 程序运行期间C. 只在程序启动时D. 只在程序结束时答案:B5. 在C语言中,以下哪个运算符用于计算两个整数的差?A. +B. -C. *D. /答案:B6. 以下哪个选项不是C语言中合法的标识符?A. _myVarB. my_varC. 2ndVarD. var$name答案:C7. 在C语言中,以下哪个选项是正确的数组定义方式?A. int arr[5] = {1, 2, 3, 4, 5};B. int arr[] = {1, 2, 3, 4, 5};C. int arr[5] = {1, 2, 3};D. int arr[] = {1, 2, 3, 4};答案:A8. 以下哪个选项是正确的C语言注释方式?A. /* This is a comment */B. // This is a commentC. //* This is a commentD. /* This is a comment */答案:A9. 在C语言中,以下哪个选项是正确的多行字符串定义方式?A. char str[] = "Line1\nLine2";B. char str[] = 'Line1\nLine2';C. char str[] = "Line1\nLine2";D. char str[] = "Line1\nLine2";答案:A10. 在C语言中,以下哪个选项是正确的结构体定义方式?A. struct Student {int id;char name[50];};B. struct Student {int id;char name[];};C. struct Student {int id;char name[50] = "John Doe";};D. struct Student {int id;char name[];};答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用________运算符可以对变量进行自增操作。
计算机二级C上机考试题库及答案
计算机二级C上机考试题库及答案在计算机二级C语言上机考试中,考生需要掌握C语言的基本语法、数据结构、算法设计等知识。
以下是一套模拟题库及答案,供考生参考和练习。
1. 题目:以下哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B解析:在C语言中,标识符可以由字母、数字和下划线组成,且不能以数字开头。
因此,只有选项B中的"variable2"是合法的标识符。
2. 题目:以下哪个选项是C语言中的整型常量?A. 0x1AB. 1.2E3C. 0.5D. 1.2答案:A解析:整型常量可以是十进制、八进制或十六进制的整数。
选项A中的"0x1A"是十六进制的整型常量,而选项B、C和D都是浮点型常量。
3. 题目:以下哪个选项是C语言中的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello" "World"D. 'H' "ello" 'W' "orld"答案:A解析:字符串字面量是由双引号括起来的字符序列。
选项A中的"Hello World"是一个合法的字符串字面量。
选项B是字符字面量,选项C和D的组合方式在C语言中不合法。
4. 题目:以下哪个选项是C语言中的合法数组声明?A. int a[5] = {1, 2, 3, 4, 5};B. int b[] = {1, 2, 3, 4, 5};C. int c[5] = {1, 2, 3};D. int d[];答案:A解析:在C语言中,数组的声明需要指定数组的大小,除非数组作为函数的参数。
选项A正确地声明了一个大小为5的整型数组,并初始化了它的元素。
c语言上机实验题及参考答案
5、两个乒乓球队进行比赛,各出3人,甲队为A,B,C 3人,乙队为X,Y,Z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单。A说他不和X比,C说他不和X、Z比。请编程序找出3队赛手的名单。(C语言源程序文件名为45.c,本程序运行结果:A--Z B--X C--Y)
2 14 14
5 10 15
8 6 16
11 2 17)
2、编写程序:输入两个正整数,求其最大公约数和最小公倍数。(如输入12和8,则最大公约数为4,最小公倍数为24)(C语言源程序文件名为42.c。要求求最大公约数用欧几里得的辗转相除法实现)。
3、编写程序实现以下功能:输入一个正整数,打印出它是否素数。(C语言源程序文件名为43.c)
例如:有定义int a=3;执行输出语句:printf(“a=%3d”,a);则输出结果显示为:a= 3(3左边有两个空格)
n(代表一个正整数)
对实数,表示输出n位小数。
例如:有定义float x=1.2;执行输出语句:printf(“x=%6.2f”,x);则输出结果显示为:x= 1.20(数字左边有两个空格)。
三、附加题:
9、编程实现:从键盘上输入一个三位正整数m,输出将m的个位,十位,百位反序而成的三位数(例如:输入m的值123,则输出m的值为321)(要求:文件名为15.c,提示:可用算术运算符“/”和“%”先分离出m的各个位数,再重新组合成新的数,例如用表达式“123%10”就能求出123的个位数3)。
三、实验题目:
if语句基本形式:if(条件){语句一;}
计算机二级C上机考试题库及答案
计算机二级C上机考试题库及答案一、选择题1. 在C语言中,以下哪个选项是正确的整型常量表示?A. 0x12B. 0.123C. 1.2e3D. 0b1010答案:A2. 若有以下定义:```cint a=1, b=2, c;```则执行语句 `c = a + b;` 后,变量 `c` 的值是多少?A. 0B. 1C. 3D. 4答案:C3. 在C语言中,以下哪个关键字用于声明一个函数?A. structB. unionC. staticD. void答案:D二、填空题1. 在C语言中,`printf` 函数用于输出,其对应的输入函数是________ 。
答案:scanf2. 若定义 `char str[10] = "Hello";`,则 `str` 数组的第7个元素是 ________ 。
答案:\03. 在C语言中,声明一个指向整型的指针变量 `p`,其正确的声明方式是 ________ 。
答案:int *p;三、编程题1. 编写一个C程序,计算并输出以下数列的前10项之和:1, 1/2, 1/3, 1/4, ...```c#include <stdio.h>int main() {double sum = 0.0;for (int i = 1; i <= 10; i++) {sum += 1.0 / i;}printf("The sum of the series is: %f\n", sum);return 0;}```2. 给定一个字符串,编写一个C程序,将字符串中的所有小写字母转换为大写字母。
```c#include <stdio.h>int main() {char str[] = "Hello, World!";for (int i = 0; str[i] != '\0'; i++) {if (str[i] >= 'a' && str[i] <= 'z') {str[i] -= 'a' - 'A';}}printf("%s\n", str);return 0;}```结束语:以上是计算机二级C上机考试题库及答案的部分内容,希望对您的学习和复习有所帮助。
c语言练习用上机试题答案
int s=0,i;
for(i=2;i<=n-1;i++)
if(n%i==0) s+=i;
return s;
※号(9套)
填空 [N] t[i][j] t[j][i]
改错 #define FU(m,n) ((m)/(n))return(value);
将字符串中的前导*号全部删除,中间和尾部的*号不删除。
int i,j,s=0;
for(j=0;j<N;j++) s+=a[0][j]+a[M-1][j];
for(i=1;i<=M-2;i++) s+=a[i][0]+a[i][N-1];
return s;
素数(5套)
填空 i t++ count
改错intfun(int a,int b,int c)
elsereturn1;
N名学生的成绩已放入一个带头节点的链表结构中,h指向链表的头结点,找出学生的最高分。
double max=h->s;
for(h=h->next;h->next!=NULL;h=h->next)
if(h->s>max) max=h->s;
return max;
填空 0.0 x[i]/N j++
改错doublefun(int m) for(i=100;i<=m;i+=100)
ss[i]='\0';
填空 0 || 1
改错t-=1.0/i;return t;
删除字符串中的所有空格。
int i=0;char *p=str;
《C语言》上机实验题及参考答案
《C语言》上机实验题及参考答案作者名:不详来源:网友提供05年7月21日1、编程实现对键盘输入的英文名句子进行加密。
用加密方法为,当内容为英文字母时其在26字母中的其后三个字母代替该字母,若为其它字符时不变:2、编程实现将任意的十进制整数转换成R进制数(R在2-16之间)。
3、从键盘输入一指定金额(以元为单位,如345.78),然后显示支付该金额的各种面额人民币数量,要求显示100元、50元、10元、5元、2元、1元、1角、5分、1分各多少张。
4、随机产生20个[10,50]的正整数存放到数组中,并求数组中的所有元素最大值、最小值、平均值及各元素之和。
5、编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。
6、模拟n个人参加选举的过程,并输出选举结果:假设候选人有四人,分别用A、B、C、D表示,当选某候选人时直接输入其编号(编号由计算机随机产生),若输入的不是A、B、C、D则视为无效票,选举结束后按得票数从高到低输出候选人编号和所得票数。
7、任何一个自然数m的立方均可写成m个连续奇数之和。
例如:1^3=12^3=3+53^3=7+9+114^3=13+15+17+19编程实现:输入一自然数n,求组成n3的n个连续奇数。
8、已知abc+cba=1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合。
9、编制一个完成两个数的四则运算程序。
如:用户输入34+56则输出结果90.00。
要求运算结果保留两位小数,用户输入时一次将两个数和操作符输入。
10、输入一个五位以内的正整数,(1)判断它是一个几位数;(2)请按序输出其各位数字;(3)逆序输出其各位数字。
如输入:56439,输出:5位数5,6,4,3,99,3,4,6,511、编写子函数:(1)用冒泡法将一个数组排成升序的函数---SUB1;(2)在升序数组中插入一个数,并且保持该数组仍为升序数组的函数---SUB2。
计算机二级C语言上机题库及答案(100套)
~计算机二级c 语言上机题库及答案内部资料,切勿外传!.第1 套填空题请补充FUN 函数,FUN 函数的功能是求10 的阶乘。
注意:部分源程序给出如下。
请勿改动主函数main 和其他函数中的任何内容,仅在fun 函数的横线上填入所编写的若干表达式或语句。
试题程序:#include <stdio.h>long fun(int n){if ( 1 )return (n*fun( 2 ));return 3 ;}main(){printf("10!=%ld\n", fun(10));}第1 处填空:n>1 或1<n第2 处填空:n-1第3 处填空:1 或11 或1L改错题下列给定程序的功能是:读入一个整数K(2〈=K〈=10000),打印它的所有因子(即所有为素数的因子)。
例如,若输入整数2310,则应输出:2、3、5、7、11。
请改正程序中的错误,使程序能得出正确的结果。
注意:不要改动main 函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <conio.h>#include <stdio.h>/********found********/IsPrime(int n);{int i, m;m = 1;/********found********/for (i=2; i<n; i++)if !(n%i){m = 0;break;}return(m);}main(){int j, k;printf("\nplease enter an integer number between 2and 10000:");scanf("%d", &k);printf("\n\nThe prime factor(s) of %d is(are):", k);for (j=2; j<k; j++)if ((!(k%j)) && (IsPrime(j)))printf(" %4d,", j);printf("\n");}第1 处:Isprime(int n);应改为Isprime(int n)第2 处:if !(n%i)应该为if(!(n%i))编程题M 个人的成绩存放在score 数组中,请编写函数fun,它的功能是:返回低于平均分的认输,并将低于平均分的分数放在below 所指的数组中。
