c语言2
- 格式:doc
- 大小:135.50 KB
- 文档页数:18
二、基本输入输出语句(一)选择题1.逻辑运算符两侧运算对象三数据类型A.只能是0和1 B.只能是0或非0正数C.只能是整型或字符型数据 D.可以是任何类型的数据2.设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为A. 1 B. 2 C. 3 D. 43.以下程序的运行结果是main(){ int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A. 6,1 B. 2,1 C. 6,0 D. 2,04.若运行时给变量x输入12,则以下程序的运行结果是main(){ int x,y;scanf(“%d”,&x);y=x>12 ? x+10 : x-12;printf(“%d\n”,y);}A. 4 B. 3 C.2 D. 15.指出下面不正确的赋值语句是A.a++ B.a==C.a+=b;D.a=1,b=26.在C语言中,错误的语句是。
A.a=b=c;B.;C.breakD.b=3*5,a*=4;7.以下所列语句中,合法的语句是。
A.a=1,b=2B.++a;C.a=a+1=5;D.y=int(a);8.若x,y均为int型数据,z为double型数据,则以下的scanf函数调用语句中不合法的是A.scanf(“%d%lx,%le”,&x,&y,&z); B.scanf(“%2d*%d%lf”,&x,&y,&z);C.scanf(“%x%*d%o”,&x,&y); D.scanf(“%x%o,%6.2f”,&x,&y,&z);9. 若x, y均为int型变量且有值,要输出x, y的值,正确的输出函数调是A. printf("%d%d",&x,&y);B. printf("%f%f",x,y);C. printf("%f%d",x,y);D. printf("%d%d",x,y);10. x为int型变量,且值为2345,不正确的输出函数调用是A. printf("%d",x);B. printf("%3d",x);C. printf("%c",x) ;D. printf("%s",x);11. 若m为float型变量,则执行以下语句后的输出为m=1234.123;printf(“%-8.3f\n”,m);printf(“%10.3f\n”,m);A.1234.123B. 1234.1231234.123 1234.123C.1234.123D. 1234.123001234.123 001234.12312.putchar函数可以向终端输出一个A. 整型变量表达式B.实型变量值C. 字符串D. 字符或字符型变量值13.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。
计算机二级C第一章基本概念 (2)第二章C程序设计的初步知识 (4)2-1 第一节简单C语言的构成和格式 (4)2-4 第二节标识符的组成和分类 (4)2-5 第三节整型数据和实型数据 (5)第四节算术表达式和赋值表达式 (9)2-16 第五节自加自减运算 (11)2-17 第六节课后习题和典型例题讲解 (12)第三章顺序结构 (13)3-1 第一节输出函数 (13)3-6 第二节输入函数 (14)3-10 第三节程序举例 (15)3-11 第四节课后习题和典型例题详解 (16)第四章选择结构 (16)4-1 第一节关系运算符和关系表达式 (16)4-3 第二节逻辑运算符和逻辑表达式 (17)4-6 第三节选择语句的使用 (18)4-10 第四节goto语句及课后习题讲解 (22)5-1 第五章循环结构 (24)第一节while语句和do-while语句的组成 (24)5-6 第二节for语句和累加累乘算法 (26)5-11 第三节循环嵌套的实例讲解 (29)5-31 第四节break语句和continue语句的使用方法 (37)5-32 第五节课后习题和典型例题的讲解 (38)6-1 第六章字符型数据 (40)第一节字符型常量和字符型变量 (40)6-5 第二节输入输出函数 (42)6-8 第三节程序举例 (43)6-11 第四节课后习题讲解和典型例题分析 (43)7-1 第七章函数 (44)第一节函数的定义和返回值 (44)7-5 第二节函数的调用和说明 (47)7-7 第三节调用函数和被调用函数之间数据的传递 (47)7-9 第四节函数程序举例 (48)7-16 第五节课后习题讲解 (52)备注:该内容为视频内容笔记。
视频内容出处为:全国计算机等级考试二级(C语言)视频教程- 视频中心·网易学院网络地址为:/special/000915SN/cyuyan.html第一章基本概念1-1计算机语言高级语言远离硬件 VB、VF、C、C++、Java低级语言贴近硬件汇编、T-Basic基本概念1.机器语言:对于计算机本身来说,它只是接受和处理由0和1代码构成的二进制指令或数据,由于这种形式的指令是面向机器的,因此也称为“机器语言”。
c语言程序设计教程第二版课后习题答案1. 基本概念和语法1.1 变量和数据类型题目:请将下列C语言的变量定义语句补充完整,并给出每个变量的数据类型和初始化值。
代码:```c#include <stdio.h>int main() {int a;float b;char c;double d;int x = 5;float y = 3.14;char z = 'A';printf("a的数据类型:%s,a的初始值:%d\n", typeof(a), a);printf("b的数据类型:%s,b的初始值:%f\n", typeof(b), b); printf("c的数据类型:%s,c的初始值:%c\n", typeof(c), c); printf("d的数据类型:%s,d的初始值:%lf\n", typeof(d), d); printf("x的数据类型:%s,x的初始值:%d\n", typeof(x), x); printf("y的数据类型:%s,y的初始值:%f\n", typeof(y), y); printf("z的数据类型:%s,z的初始值:%c\n", typeof(z), z); return 0;}```答案:a的数据类型:int,a的初始值:随机值b的数据类型:float,b的初始值:随机值c的数据类型:char,c的初始值:'\0'd的数据类型:double,d的初始值:随机值x的数据类型:int,x的初始值:5y的数据类型:float,y的初始值:3.140000z的数据类型:char,z的初始值:A1.2 运算符和表达式题目:请在下列C语言程序中补充运算符,使程序达到题目要求。
```c#include <stdio.h>int main() {int a = 5;int b = 3;int c;// 1. 将a和b的和赋值给c,并将c的值输出// 补充代码// 2. 将a和b的差赋值给c,并将c的值输出// 补充代码// 3. 将a和b的积赋值给c,并将c的值输出// 补充代码// 4. 将a除以b的商赋值给c,并将c的值输出// 补充代码// 5. 将a除以b的余数赋值给c,并将c的值输出// 补充代码return 0;}```要求:1. 补充代码,使程序能够正确输出运算结果;2. 使用合适的运算符。
第1章程序设计基本概念·数据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序。
·软件生命周期可分为软件定义、软件开发和软件运行维护3个阶段。
软件开发期包括概要设计、详细设计、实现和测试4个阶段。
·由C语言构成的指令序列称为C源程序,源程序文件的后缀为“.C”。
源程序经过C编译程序编译生成后缀为“.obj”的二进制文件(称为目标文件),然后由称为“连接程序”(Link)的软件把目标文件与C语言提供的各种库函数连接起来,生成后缀为“.exe”的可执行文件。
·结构化程序设计方法的主要原则可以概括为自顶向下,逐步求精,模块化,限制使用go to语句等。
·栈实际也是线性表,只不过是一种特殊的线性表。
栈是只能在表的一端进行插入和删除运算的线性表,通常称插入、删除的这一端为栈顶,另一端为栈底。
当表中没有元素时称为空栈。
栈顶元素总是最后被插入的元素,从而也是最先被删除的元素:栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。
·队列是只允许在一端删除,在另一端插入的顺序表,允许删除的一端叫做队头,允许插入的一端叫做队尾。
队列的操作数是依据先进先出的原则进行的。
因此队列亦称作先进先出的线性表,或后进后出的线性表。
·耦合性和内聚性是模块独立的两个定性标准。
一般较优秀的软件设计尽量做到高内聚、低耦合,这样有利于提高软件模块的独立性,也是模块划分的原则。
·算法的基本特征主要包括以下四个方面:可行性:针对实际问题而设计的算法,执行后能够得到满意的结果。
确定性:算法中的每一个步骤都必须有明确的定义,不允许有模棱两可的解释和多义性。
有穷性:算法必需在有限时间内做完,即算法必需能在执行有限个步骤之后终止。
拥有足够的情报:要使算法有效必需为算法提供足够的情报当算法拥有足够的情报时,此算法才最有效的;而当提供的情报不够时,算法可能无效。
程序调试题1.在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:运行时输入n,输出n的所有质数因子(如n=13860,则输出2、2、3、3、5 7、11)。
#include <stdio.h>void main(){ int n,i; scanf("%d",&n);/****** 1 ******/i=1;while(n>1)if(n%i==0) { printf("%d\t",i); n/=i; }else/******** 2 *******/n--;}2.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:输入的一个小写字母,将字母循环后移5个位置后输出,如‘a’变成‘f’,‘w’变成‘b’。
#include <stdio.h>void main(){ char c; c=getchar();if(______1______) c=c+5;else if (c>='v' && c<='z') ______2______putchar(c);}3.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:调用函数f用以求1元2次方程x*x+5*x-2=0 的实根。
#include <stdio.h>#include <math.h>int f(float a,float b,float c,float *x1,float *x2){ if(b*b-4*a*c<0) return 1;*x1=(-b+sqrt(b*b-4*a*c))/2/a;*x2=(-b-sqrt(b*b-4*a*c))/2/a;______1______}void main(){ float u1,u2; float a=1,b=5,c=-2;if( ________2_________ ) printf("实数范围内无解\n");else printf("%.2f %.2f\n",u1,u2);}4.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:调用函数f计算代数多项式 1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*x*x,当x=1.7时的值。
#include <stdio.h>float f(float,float*,int);void main(){ float b[5]={1.1,2.2,3.3,4.4,5.5};printf("%f\n",f(1.7,b,5));}float f( _______1________ ){ float y=a[0],t=1; int i;for(i=1;i<n;i++) { t=t*x; y=y+a[i]*t; }_____2_____}5.在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:运行时输入n,输出n各位数字之和(如n=1308则输出12,n=-3204则输出9)。
#include <stdio.h>#include <math.h>void main(){int n,s=0; scanf("%d",&n); n=fabs(n);/******** 1 *******/while(n>1){s=s+n%10;/******** 2 ******/n=n%10;}printf("%d\n",s);}6.在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:分别统计字符串中所有英文字母中的各元音字母个数。
#include <stdio.h>#include <ctype.h>void main(){char a[80]; int n[5]={0},i; gets(a);for(i=0; a[i]!='\0'; i++)/***** 1 *****/switch(toupper(a[i])){case 'a': n[0]++; break;case 'e': n[1]++; break;case 'i': n[2]++; break;case 'o': n[3]++; break;/***** 2 *****/case 'U': n[4]++;}for(i=0;i<5;i++) printf("%d\n",n[i]);}7.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:调用函数f,将1个整数首尾倒置,若程序输入12345,则输出54321;若程序输入-34567,则输出-76543。
#include <stdio.h>#include <math.h>long f(long n){long m,y=0; m=fabs(n);while(m!=0){y=y*10+m%10;____1____}if(n>=0) return y;else _____2_____}void main(){ printf("%ld\t",f(12345)); printf("%ld\n",f(-34567)); }8.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:输入整数n(n>0),求m使得2的m次方小于或等于n、2的m+1次方大于或等于n。
#include <stdio.h>void main(){int m=0,t=1,n;while( _____ 1 ________);while(!(t<=n&&t*2>=n)){_____ 2 _____m++;}printf("%d\n",m);}9.在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:运行时若输入a、n分别为3、6,则输出下列表达式的值:3+33+333+3333+33333+333333#include<stdio.h>void main(){int i,a,n; long t=0;/********* 1 *******/s=0;scanf("%d%d",&a,&n);for(i=1;i<=n;i++){/******* 2 ******/t=t*10+i;s=s+t;}s=s*a;printf("%ld\n",s);}10.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:函数f将数组循环左移k个元素,数组x[7]调用函数f后的输出结果为:4 5 6 7 1 2 3#include <stdio.h>void f(int *a,int n,int k){int i,j,t;for(i=0;i<k;i++){___1___;for( _______2________ ) a[j-1]=a[j];a[n-1]=t;}}void main(){int i,x[7]={1,2,3,4,5,6,7};f(x,7,3);for(i=0;i<7;i++) printf("%5d",x[i]);printf("\n");}11.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:数列的第1、2项均为1,此后各项值均为该项前二项之和。
计算数列第30项的值。
#include <stdio.h>_______1______void main(){ printf("%ld\n",f(30)); }long f(int n){if( ______2______ ) return 1;else return f(n-1)+f(n-2);}12.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:输入m、n(要求输入数均大于0),输出它们的最大公约数。
#include <stdio.h>void main(){int m,n,k;while(scanf("%d%d",&m,&n), _______1______ );for( ____2____; n%k!=0||m%k!=0; k--);printf("%d\n",k);}13.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。