【C语言程序设计】上机作业2+答案
C语言程序设计试题集及其答案 (2)

第一章基础知识一.填空1.每个C程序都必须有且仅有一个________ 函数。
2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。
3. 软件是程序,以及______、使用和维护所需要的所有文档。
4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。
5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。
6. C语言是由________组成的。
7. C语言的函数可分为主函数main、标准库函数和_________。
8. 一个函数是由两部分组成的,即:________和函数体。
9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。
10.程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作的要求。
不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。
11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。
12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对象,也可以用标号和符号来代替地址、常量和变量。
13.在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。
14. C程序的执行均是由执行_________开始。
15.函数体即为包含在{}内的部分。
它分为________和为完成功能任务由若干个C 语句组成的执行部分。
16.C语言程序中一条简单语句是以________字符作为结束符的。
17.C语言是结构化、________的程序设计语言。
C语言程序设计上机指导书及答案

姓名:_________________ 学号:_________________ 专业:_________________日期:_________________指导原则:促进学生针对实际问题,用所学C语言知识编写符合规范的源程序代码,在某一集成开发环境下尽一切调试技能调试程序,并对运行结果进行分析处理,得出正确结论,解决好实际问题。
更快更好地掌握所学知识,技能和软件的一向开发方法目的:1,通过上机实验,加深对教材内容的理解,特别是一些语法规定,熟练掌握各种语法规则。
2,通过上机实验,熟悉某个C语言集成开发环境。
掌握集成开发环境下程序的编辑、编译与连接、运行的完整过程3,通过上机实验,要学会调试程序。
能根据系统给出的“出错信息”,判断错误所在,并修改错误,使程序正确运行。
要求:1,复习与本次实验相关的教学内容2,了解集成开发环境的操作步骤3,准备好实验内容。
对于编程题,一定要自己动手,书写工整,并人工检查无误后才能上机实验,以提高上机效率。
4,要准备好调试和运行程序时所需的数据。
5,对运行中可能出现的问题事先作出估计,并对程序中有疑问的地方作上标记,以便在运行时给予注意。
并在程序调试时,把系统给出的出错原因,解决方法等记载在源程序之后;程序运行结束后,把运行结果也记录下来。
6,每个实验应独立完成,对实际问题所编写的源程序需写出完整实验的报告。
第一次上机作业熟悉C语言集成开发环境实验目的:1,熟悉C语言集成开发环境2,掌握集成开发环境下文件的编写与调用,源程序的编译与调试,程序运行结果的观察与分析。
3,掌握C语言程序的基本结构实验要求:1, 程序编写完后,要对输入的每一个符号和词进行检查核对,不能有错。
2,编写源程序时,不要在中文输入法下进行,也不要有首字符大写,否则调试时,会有错误。
实验内容:1,在D盘新建文件夹:D:\C语言程序\×××(所在班级如0709401)\×××(自己学号或姓名如01),作为以后所做程序的存放位置。
国家开放大学电大《C语言程序设计》网络课形考任务2作业及答案

国家开放大学电大《C语言程序设计》网络课形考任务2作业及答案形考任务2一、选择题(共20分,每小题2分)题目1当处理特定问题时的循环次数已知时,通常采用的语句是()。
选择一项:a. for题目2在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写成的语句是()。
选择一项:b. if题目3for语句能够被改写成的语句是()。
选择一项:d. while题目4下面循环语句执行结束后输出的i值为()。
for(int i=0; i<n; i++) if(i>n/2) {cout<<i<<endl; break;}选择一项:b. n/2+1题目5在下面循环语句中,内层循环体S语句的执行总次数为()。
for(int i=0; i<n; i++)for(int j=i; j<n; j++) S;选择一项:d. n(n+1)/2题目6在下面的do循环语句中,其循环体被执行的次数为()。
int i=0; do i++; while(i*i<10);选择一项:a. 4题目7在下面的一维数组定义中,有语法错误的选项是()。
c. int a[];题目8在下面的二维数组定义中,语法正确的选项是()。
选择一项:c. int a[][3]={{1,3,5},{2}};题目9假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][1]的值为()。
选择一项:d. 8题目10假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为()。
选择一项:a. 0二、判断题(共20分,每小题1分。
叙述正确则回答“是”,否则回答“否”)题目11在执行“typedef int DataType;”语句后,标识符DataType与保留字int具有完全相同的含义和作用。
《程序设计基础》作业二答案(12秋)

《程序设计基础》作业二答案(12秋)作业二答案一、选择题1、C语言中,使用变量的要求是______。
AA 要先定义后使用B 要先使用后定义C 不需要定义,可以直接使用D 没有明确的要求2、不是C语言的基本数据类型是______。
DA intB doubleC charD bool3、编程语言提供的三种基本控制结构是______。
DA 输入、处理和输出结构B 常量、变量和表达式结构C 表达式、语句和函数结构D 顺序、选择和循环结构4、在C语言中,决定int数的表示范围的因素是______。
AA int类型占用的字节数量B 人为事先的约定和习惯C 所存储的数据是否有符号D 数在内存中的编码方式5、C语言中,关于运算符的正确概念是_____。
DA 运算符具有优先级,同优先级的运算符由括号决定运算次序B 在不同优先级运算符进行混合运算时,运算的先后次序取决于结合性C 在同优先级的运算符参与运算时,先计算左侧的运算符D 运算符具有优先级和结合性6、在C语言中关于循环语句的结论中,错误的是______。
DA do-while语句构成的循环至少要执行一次B while语句和for语句可以相互替代C for和while语句的循环控制条件都是当条件成立时执行循环体D do-while语句的循环控制条件是当条件不成立时继续执行循环体二、填空题1、最基本的程序控制有三种,它们是______,______和______。
这三种执行控制的任意组合和重复、嵌套就可以描述任意复杂的程序。
顺序执行、分支控制和循环控制2、C语言中分支语言是______语句和______语句。
if,switch3、C语言中循环语言是______语句,______语句和______语句。
while,for和do-while4、C语言中自增运算符是______,求余数的运算符号是______。
++,%5、C语言中要改变循环语句的流程可以使用语句______,______和______。
《C语言程序设计上机指导与习题》(张健)599-0答案 第二部分 习题答案

第1章C语言概述一、选择题1.C 2.D 3.C 4.C 5.B6.C 7.C 8.D 9.C 10.A二、填空题1.主函数main 2.分号3./* */ //4.源程序.c 目标程序.obj 可执行程序.exe三、编程题1.参考代码#include <stdio.h>int main(){printf("欢迎来到C语言的世界!\n");return 0;}2.参考代码#include <stdio.h>int main(){int a,b,c;a=2;b=3;c=a+b;printf("c=%d\n",c);return 0;C 语言程序设计上机指导与习题 }第2章 算 法一、选择题1.D2.A3.A4.C5.B二、填空题1.算法2.顺序结构、选择结构(分支结构)、循环结构三、编程题1.算法的流程图如图2-1所示,算法的N-S 流程图如图2-2所示。
a>ba>cb>cmax=amax=c max=b max=c真真真假假假开始输入a ,b ,c 的值输出max 的值结束图2-1 流程图第二部分 习题答案输入a ,b ,c 的值判断a>b是否输出max 的值判断b>c判断a>c 是是否否max=amax=cmax=b max=c图2-2 N-S 流程图2.算法的流程图如图2-3所示,算法的N-S 流程图如图2-4所示。
开始num1=0,num2=0,num3=0输出num1,num2和num3的值结束No Yes 输入c 的值是否是小写字母num1++是否是大写字母num2++是否是数字num3++判断c 是否为#Yes No NoYes YesNo图2-3 流程图C 语言程序设计上机指导与习题判断是否是小写字母是否是否是大写字母是num1++否是否是数字num1=0,num2=0,num3=0输入c 的值是否num2++num3++当输入的字符c 不为#时输出num1,num2和num3的值图2-4 N-S 流程图第3章 C 程序设计基础一、选择题1.C 2.C 3.C 4.D 5.A 6.B 7.D 8.B 9.A 10.A 11.A 12.A 13.B 14.D 15.A 16.A17.B18.A19.A20.D二、填空题1.字母 数字 下划线 字母 下划线2.23.04.2第二部分习题答案5.1个2个6.(a/100) % 107.'f' 8.6 9.710.6.700000 2.000000 11.10,1812.d=13,e=13.200000三、编程题1.参考代码#include<stdio.h>int main(){int num,a,b,c;printf("Please input the number:");scanf("%d",&num);a=num/100;b=(num-100*a)/10;c=num-100*a-10*b;a+=b*10+c*100;printf("The result is%d\n",a);return 0;}2.参考代码#include <stdio.h>int main(){float c,f;f=120.3;c=5.0/9*(f-32);printf("c=%f\n",c);return 0;}3.参考代码#include <stdio.h>int main( ){C语言程序设计上机指导与习题int a,b,c;printf("请输入a的值\n");scanf("%d",&a);printf("请输入b的值\n");scanf("%d",&b);c=(b%10)*1000+(a%10)*100+(b/10)*10+a/10;printf("c=%d\n",c);return 0;}第4章顺序结构程序设计一、选择题1.A 2.D 3.B 4.A 5.C 6.D 7.B 8.B二、填空题1.空格制表符回车2.printf("%.2f\n",n);3.A4.0.33%5.n1=%04d\nn2=%04d6.①putchar(a); ②putchar(b);7.①b=a+32; ②putchar(b);8.n1=1,n2=129.aabb cc abc A B10.x=3.600000,i=3三、编程题1.参考代码第二部分习题答案#include <stdio.h>int main(){int i;int s1,s2,s3,s4;int sum;double average;sum=average=0;scanf("%d,%d,%d,%d",&s1,&s2,&s3,&s4);sum=s1+s2+s3+s4;average = (double)sum/4;printf("sum=%d\n",sum);printf("average=%f\n",average);return 0;}2.参考代码#include <stdio.h>int main(){char c1='C',c2='h',c3='i',c4='n',c5='a';c1=c1+5;c2=c2+5;c3=c3+5;c4=c4+5;c5=c5+5;printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);return 0;}3.参考代码#include <stdio.h>int main(){int a=560;int h,m;h=a/60;C语言程序设计上机指导与习题m=a%60;printf("560分钟=%d小时%d分钟\n",h,m);return 0;}第5章选择结构程序设计一、选择题1.C 2.B 3.C 4.C 5.D 6.B 7.C 8.C 9.C 10.D 11.B 12.C 13.C 14.A 15.B 16.A 17.D 18.B 19.B 20.D二、填空题1.算术运算符赋值运算符2.a>1&&a<43.if(a%3)4.x>z||y>z5.11,19,30,16.67.08.①getchar(); ②ch<='Z'-6 ③ch=ch+6;④'Z'-6<ch&&ch<='Z' ⑤ch=ch+5-'Z'+'A';三、编程题1.参考代码#include<stdio.h>int main(){char num='0';第二部分习题答案scanf("%c",&num);if (num>='a'&&num<='z')printf("小写字母\n");else if (num>='A'&&num<='Z')printf("大写字母\n");elseprintf("不是字母\n");return 0;}2.参考代码#include<stdio.h>int main(){int grade;printf("input grade(0-100):");scanf("%d",&grade);if(grade>100)printf("Input error!\n");else if(grade>=90)printf("Very Good!\n");else if(grade>=80)printf("Good!\n");else if(grade>=70)printf("Middle!\n");else if(grade>=60)printf("Pass!\n");elseprintf("No pass!\n");return 0;}3.参考代码#include <stdio.h>int main(){int month;C语言程序设计上机指导与习题printf("input month(1-12):");scanf("%d",&month);if(month>=3&&month<=5)printf("spring");if(month>=6&&month<=8)printf("summer");if(month>=9&&month<=11)printf("autumn");if(month==12||month==1||month==2)printf("winter");if(month>12||month<1)printf("error month!");return 0;}4.参考代码#include <stdio.h>int main(){char c;printf("请输入一个大写字母:\n");scanf("%c",&c);if('B'<=c&&c<='Y')printf("前一个字母为%c,后一个字母为%c\n",c-1,c+1);else if(c=='A')printf("没有前面的字母,后一个字母为%c\n",c+1);elseprintf("前一个字母为%c,没有后面的字母",c-1);return 0;}5.参考代码#include <stdio.h>int main(){int a,b,c,t,x;printf("input 3 integers:");scanf("%d,%d,%d",&a,&b,&c);if(a>b){t=a;a=b;b=t;}if(b<c)x=b;else if(a<c)x=c;elsex=a;printf("the middle number is:%d",x);return 0;}第6章循环结构程序设计一、选择题1.B 2.B 3.B 4.A 5.B6.C 7.A 8.C 9.C 10.B11.B12.A13.C 14.B 15.A16.A 17.C 18.A 19.C 20.B二、填空题1.while do-while for 不管循环条件是否成立,do-while循环都先执行一次循环体,所以do-while循环的循环体至少执行一次,而while循环的循环体可能一次都不执行。
2020年中国石油大学北京网络学院 C语言程序设计-第二次在线作业 参考答案

中国石油大学北京网络学院
C语言程序设计-第二次在线作业
参考答案
1.(
2.5分)以下关于数组的描述正确的是()。
A、A. 数组的大小是固定的,但可以有不同的类型的数组元素。
B、B. 数组的大小是可变的,但所有数组元素的类型必须相同。
C、C. 数组的大小是固定的,但所有数组元素的类型必须相同。
D、D. 数组的大小是可变的,但可以有不同的类型的数组元素。
我的答案:C 此题得分:2.5分
2.(2.5分)在定义int a[10];之后,对a的引用正确的是()。
A、A.a[10]
B、B.a[6.3]
C、C.a(6)
D、D.a[10-10]
我的答案:D 此题得分:2.5分
3.(2.5分)以下能正确定义数组并正确赋初值的语句是()。
A、A. int n=5,b[n][n];
B、B. int a[1][2]={{1},{3}};
C、C. int c[2][]={{1,2},{3,4}}
D、D. int a[3][2]={{1,2},{3,4}}。
XXX18秋学期(1709、1803、1809)《C语言程序设计》在线作业答案2

XXX18秋学期(1709、1803、1809)《C语言程序设计》在线作业答案2 18秋学期(1709、1803、1809)《C语言程序设计》在线作业-1试卷总分:100得分:100分一、单选题(共40道试题,共80分)1.C语言中规定,if语句的嵌套结构中,else总是与( )配对A.与最近的if配套B.与第一个if配套C.按缩进位置相同的if配套D.与最近的且尚未配对的if配套满分答案:D2.for (i=2.i=0.) printf(“%d”。
i--)。
以上程序段的循环次数是( )。
A.2次B.无限次C.0次D.1次满分答案:B3.fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是( )A.只写B.追加C.读或读写D.答案B和C都正确满分答案:D4.变量的指针,其含义是指该变量的( )A.地址B.值C.名字D.标识总分值谜底:A5.下面4个选项中,均是C语言关键字的选项是( )。
A.auto enum includeB.switch typedef continueC.signed union scanfD.if struct type满分答案:B6.当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是A.k%2B.k%2==0C.(k%2)!=0D。
(k%2==0)满分答案:B7.如果在C语言中一个int型数据在内存中占2个字节,则unsignedint型数据的取值范围为( )。
A.0~255B.0~32 767C.0~65 535D.0~2 147 483 647满分答案:C8.数组名作为实参通报给形参时,数组名被处理为( )A.该数组的长度B.该数组的元素个数C.该数组的首地址D.该数组中各元素的值满分答案:C9.若有定义char str[]=“very good”,则str的长度为( )A.8B.9C.10D.11总分值谜底:C10.下面4个选项中,均是不正当的用户标识符的选项是( )A.A P_0 doB.float a0 _AC.b-a 123 intD._123 temp INT总分值谜底:C11.设有如下程序#include<XXX>main()printf("%c\n",(ch1,ch2))。
二级c语言上机考试题库答案

二级c语言上机考试题库答案1. 题目:编写一个C语言程序,计算并输出两个整数的和。
```c#include <stdio.h>int main() {int a, b, sum;printf("请输入两个整数:");scanf("%d %d", &a, &b);sum = a + b;printf("两个整数的和为:%d\n", sum);return 0;}```2. 题目:编写一个C语言程序,实现字符串的反转。
```c#include <stdio.h>#include <string.h>void reverse(char str[]) {int len = strlen(str);for (int i = len - 1; i >= 0; i--) {printf("%c", str[i]);}}int main() {char str[100];printf("请输入一个字符串:");scanf("%s", str);printf("反转后的字符串为:");reverse(str);printf("\n");return 0;}```3. 题目:编写一个C语言程序,计算并输出一个3x3矩阵的转置矩阵。
```c#include <stdio.h>#define ROWS 3#define COLS 3void transposeMatrix(int matrix[ROWS][COLS], inttransposed[COLS][ROWS]) {for (int i = 0; i < ROWS; i++) {for (int j = 0; j < COLS; j++) {transposed[j][i] = matrix[i][j];}}}void printMatrix(int matrix[ROWS][COLS]) {for (int i = 0; i < ROWS; i++) {for (int j = 0; j < COLS; j++) {printf("%d ", matrix[i][j]);}printf("\n");}}int main() {int matrix[ROWS][COLS] = {{1, 2, 3},{4, 5, 6},{7, 8, 9}};int transposed[COLS][ROWS];transposeMatrix(matrix, transposed);printf("原始矩阵:\n");printMatrix(matrix);printf("转置矩阵:\n");printMatrix(transposed);return 0;}```4. 题目:编写一个C语言程序,实现冒泡排序算法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
if ( (c >= '0') && (c <= '9') ) { if (operator == 0) result = result*10 + c - '0'; else data = data*10 + c - '0'; } else if ( (c == '+') || (c == '-') ) { if (operator != 0) { result = result + operator*data; data = 0; } operator = (c == '+')? 1: -1; }
int lineNum; /* the num of lines */ printf("Please input the valume of n = "); scanf("%d", &n); lineNum = 2*n-1;
/***********************************/ /* output the first part of the figure. */ /***********************************/ for ( i=1; i <= n; i++) { for ( j=1; j <= lineNum; j++ ) if ( (j <= i) || (j >= (lineNum-(i-1)) ) ) printf("*"); else printf(" ");
第二次上机作业
1. 编写一个C程序,输入一个整数n,根据 n的值在屏幕上输出相应图案
例如:输入 n = 3,则在屏幕上输出 第1行: * * 第2行: * * * * 第3行: * * * * * 第4行: * * * * 第5行: * *
#include <stdio.h> void main( ) { int n, i, j; /* n --- the input number; i --- the row index; j --- the column index;*/
第二次上机作业(续)
3.编程一个C程序,输入一个整数i,并 完成下列计算
1 2 i, sum 100 i (i 1) 1, i * i, i5 5 i 10 i 10
#include <stdio.h> void main( ) { int i, j, invalid, sum; sum = 0; invalid = 0; printf("Please input the value of i = "); scanf("%d", &i); if (i <= 0) invalid = 1; else if (i <= 5) for ( j=1; j <= i; j++ ) sum += j;
printf("\n"); } }
第二次上机作业(续)
2. 编写一个C程序,能读入并计算一个只 含有加减运算的表达式,每一个输入的 数据都是整数,除第一个数外,其余每 个数前面都有一个运算符。
例如, 23+43-233+234; 表达式以分号“;”结束
解一: #include <stdio.h> void main() { int result, data, operator, invalid; /* result --- the result of computation. data --- the second number in computation. operator --- '+' --> +1 ‘-’ --> -1 invalid --- 0 --> valid input. 1 --> invalid input. */
printf("\n");
}
/***********************************/ /* output the second part of the figure. */ /***********************************/ for ( i=(n-1); i >= 1; i-- ) { for ( j=1; j <= lineNum; j++ ) if ( (j <= i) || (j >= (lineNum-(i-1)) ) ) printf("*"); else printf(" ");
else if (i <= 10) { sum = 100; for ( j=1; j < i; j++) sum -= j; } else sum = i*i;
if (invalid) printf("i<0, Invalid Input!\n"); else printf("sum = %d\n", sum);
else { invalid = 1; break; } c = getchar( );
} result = result + operator*data; if (invalid) printf("Invalid Input!\n"); else printf("result = %d\n",result);
第二次上机作业(续)
5.编写一个C程序,输入一个整数,计 算其各位数字之和,例如,输入 2568,则计算并显示2+5+6+8的值。
#include <stdio.h> #define Index 10 void main( ) { int num, sum = 0; printf("Please input the value of the integer num = "); scanf("%d", &num); do { sum += num%Index; num = num/Index; } while (num != 0); printf("sum = %d\n\n", sum); }
while (fabs(tmp) >= Thresh) { ex = ex + tmp; tmp = tmp*x/(++i); } printf("Our iterative result is: exp(%.2f) = %f\n", x, ex); printf("The reference result is: exp(%.2f) = %f\n", x, exp(x)); }
}
第二次上机作业(续)
4.编写一个C程序,输入一个数x,利用下 式计算exp(x),直到某一累加项的绝对 值小于1e-6为止
x 2 x3 x 4 e x 1 x 2! 3! 4!
#include <stdio.h> #include <math.h> #define Thresh 1e-6 void main( ) { float x, ex, tmp; int i; printf("Please input the value of x = "); scanf("%f", &x); ex = 1; i = 1; tmp = x/i;
}
解二:
#include <stdio.h> void main( ) { char c; int operand, result; scanf("%d", &result); scanf("%c", &c); while(';'!=c){ scanf("%d", &operand); if('+'==c) result += operand; else if('-'==c) result -= operand; scanf("%c", &c); } printf("result is: %d\n", result); }
char c;
/**********************************/ /* Initialization & Input */ /**********************************/ result = 0; data = 0; operator = 0; invalid = 0; printf("Please input the equation with the end of ';'.\n"); c = getchar( ); while (c != ';') {