C语言程序设计习题1
- 格式:doc
- 大小:43.50 KB
- 文档页数:3
一、二、三、、选择1.2.3.4.5.、填空1.2.3.4.5.、算法1.2.1. 以下2. 在一3. 以下4. 结构5. 在程1. 一个2. 3. 算法4. 结构5. 结构算法设1. 求三2. 选择题以下叙A. B. C.D.(句在一个A. B. C.D.(程序以下叙A. B. C.D.(结构化A. B. C.D.(在程序A. B. C.D.填空题一个简一个算法的结构化结构化算法设计求三个求1+2择题 以下叙述 C 语言C. D. (解释句,另外 必须 可以C. 必须D. 必须(解释程序也就以下叙述 C 语言C. D. 同一(解释结构化程 程序 程序C. 程序D. 程序(解释在程序设 不限 减少C. 程序D. 程序空题 一个简单C 算法的特结构化程结构化程法设计题求三个数1+2+3下叙述不正一个语言程在一个解释:一个必须在程可以在任必须在程必须在系解释:序也就执下叙述中正在语言程构成同一个解释:构化程序设程序的规程序的易程序的执程序的可解释:程序设计时不限制减少或取程序越短程序结构个简单的语言法的特性是构化程序由构化程序设计题三个数中的+2+3+述不正确个C 语言语言程序C 语言程个C 语言:另外被C 须在程序以在任意须在程序须在系统:一个也就执行述中正确C 语言程语言程序成C 语言一个:程序设计序的规模序的易读序的执行序的可移:结构设计时限制got 少或取消序越短越序结构应单的语言程序特性是程序由程序设计 数中的最+3+不正确的语言程言程序的语言程序语言程C 语言程外被“程序中在程序的在任意地在程序的在系统调一个就执行完了中正确的语言程序言程序中语言程C 语言main 序设计主的规模的易读性的执行效的可移植结构化程计时,或取消注越短越好结构应有C 语言言程序是性是 有穷序由 顺序序设计方中的最大…正确的是语言程序程序的基本言程序中语言程序语言程序/*”序中,程序的最任意地方程序的最系统调用个C 程序行完了正确的是言程序中程序中有输语言程序语言程ain 函数设计主要强规模易读性执行效率可移植性构化程序,应采纳goto 语句取消注释短越好构应有助语言程程序是从顺序结设计方法的的最大者+100的是(言程序可的基本组程序中言程序必言程序中”和“,序的最后面意地方序的最前面统调用的库程序总完了)的是(程序中,中有输入言程序的语言程序函数在一主要强调读性行效率移植性化程序设应采纳的语句的消注释行越好应有助于读语言程序至序是从有穷性顺序结构方法的主大者。
第1次作业一、单项选择题(本大题共60分,共20小题,每小题3分)1. #inl ucde <mycode.h> 是一条()。
A. 文件包含预处理命令B. 宏定义预处理语句C. 条件编译预处理命令D. C语句2.在C程序中,实型常数10-5的指数书写形式是()。
A.10A-5B.10E-5C.1E-5D.E-52. 下面关于结构体指针变量的描述中,正确的是()。
A. 定义一个结构体类型指针变量,可以用于存放同类型结构体变量在内存中的起始地址B. 定义一个结构体类型指针变量,可以存放同一程序中任意结构体类型变量地址C. 在函数的形式参数表中,不能有结构体类型指针变量作为形式参数D. 表示结构体变量的地址时,不需要使用取地址运算符,而是用结构体变量名直接表示3. 关于语句:int (*ptr)(); ,以下说法错误的是()。
A. ptr是指向函数的指针B. ptr可以指向定义为类似int a()的函数C. ptr是一个函数名,该函数返回值是指向整型数据的指针D. ptr是C语言的标识符合,命名要符合C语言的规定4. 下面关于结构体变量的描述中,错误的是()。
A. 结构体变量也遵循先定义、后使用的原则B. 结构体变量可以初始化C. 结构体变量不能作为整体实现数据的输入D. 结构体变量虽然不能整体输入,但可以整体实现数据输出5. 下面关于一维动态数组的描述中,错误的是( )。
A. 创建一维动态数组需要一个一级指针变量作为数组名使用B. malloc函数的返回值直接赋值给指针变量C. malloc函数的返回值需按要求强制转换后赋值给指针变量D. 动态一维数组的长度也不能是任意的长度6. 设有C语句序列:int arr[5],*p1; p1=arr; ,那么能够输入数组3号元素值的是()。
A. sca nf("%d",p1+3);B. sca nf("%d",arr[3]);C. sca nf("%d",p1*3);D. sca nf("%d",&p1[3]);7. 下面与结构体数组做函数参数相关描述中,错误的是( )。
C语言练习题(所提供的源程序均采用自定义函数方式解决,如不采用函数方式,也可直接在main函数中借鉴该思想编程,因时间有限,所有程序未能一一验证,仅供参考使用)1、定义一个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。
#include <stdio.h>int fun(int a,int b,int c){if(a+b>c && b+c>a && a+c>b){if(a==b && b==c )return 3;else if(a==b||b==c||a==c)return 2;else return 1;}else return 0;}void main(){int a,b,c,shape;printf("\nInput a,b,c: ");scanf("%d%d%d",&a,&b,&c);printf("\na=%d, b=%d, c=%d\n",a,b,c);shape =fun(a,b,c);printf("\n\nThe shape : %d\n",shape);}2、编写一个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运行后 a 中的值为8,b中的值为3。
#include <stdio.h>void fun(int *x,int *y){int t;t=*x;*x=*y;*y=t}void main(){int a=3,b=8;printf("%d %d\n",a,b);fun(&a,b);printf("%d %d\n",a,b);}3、从键盘输入3个数,将最大值放在变量a中,最小值放在变量c中。
C 语言程序设计(第三版)习题库1、设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。
请编程序。
#include <stdio.h>main(){float r,h,C1,Sa,Sb,Va,Vb;scanf(“%f ”,&r);scanf(”%f ”,&h );;C1=2*3.14*r;Sa=3.14*r*r;Sb=4*Sa;Va=4*3.14*r*r*r/3;Vb=Sa*h;printf(“周长=%.2f ,面积=%2f,表面积=%.2f,圆球体积=%.2f,圆柱体积=.2f,C1,Sa,Sb,Va,Vb );}2、输入一个华氏温度,要求输出摄氏温度。
公式为 c=5(F-32)/9输出要求有文字说明,取位2小数。
#include <stdio.h>main(){float F,c;scanf("%f",&F);c=5*(F-32)/9;printf("c=%.2f",c);}3、有一函数:⎪⎩⎪⎨⎧≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。
#include <stdio.h>main(){int x,y;printf("输入x :");scanf("%d",&x);if(x<1) { /* x<1 */y=x;printf("x=%3d, y=x=%d\n",x,y);} else if (1<=x-10){ /* 1≤x -10 */ 或x<10y=2*x-1;printf("x=%3d, y=2*x-1=%d\n",x,y);} else{ /* x≥10 */y=3*x-11;printf("x=%3d, y=3*x-11=%d\n",x,y);}}4、给定一个不多于5位的正整数,要求:①求它是几位数;②按逆序打印出各位数字。
c语言程序设计课后习题及答案C语言程序设计是计算机科学与技术专业的核心课程之一,它不仅教授了编程语言的基本知识,还培养了学生的逻辑思维能力和问题解决能力。
课后习题是巩固课堂学习内容的重要手段,以下是一些C语言程序设计的典型课后习题及答案。
习题1:基本数据类型编写一个程序,输入一个整数和一个浮点数,然后输出它们的和。
```c#include <stdio.h>int main() {int a;float b, sum;printf("请输入一个整数:");scanf("%d", &a);printf("请输入一个浮点数:");scanf("%f", &b);sum = a + b;printf("它们的和是:%f\n", sum);return 0;}```习题2:条件语句编写一个程序,根据输入的成绩判断学生的等级。
```c#include <stdio.h>int main() {float score;printf("请输入学生的成绩:");scanf("%f", &score);if (score >= 90) {printf("等级:A\n");} else if (score >= 80) {printf("等级:B\n");} else if (score >= 70) {printf("等级:C\n");} else if (score >= 60) {printf("等级:D\n");} else {printf("等级:F\n");}return 0;}```习题3:循环结构编写一个程序,计算1到100的整数之和。
第一章:程序设计基础知识一、单项选择题1、以下( )是面向过程的程序设计语言。
A)机器语言 B)汇编语言 C)高级语言 D)第四代语言2、程序设计一般包含以下四个步骤,其中其中首先应该完成的是( )。
A)设计数据结构和算法B)建立数学模型C)编写程序 D)调试和运行程序3、以下常用算法中适合计算等差级数的算法是( )。
A)枚举法B)递推法 C)分治法 D)排序法4、以下不属于算法基本特征的是( )。
A)有穷性 B)有效性C)可靠性 D)有一个或多各输出5、以下描述中不正确的是( )。
A)程序就是软件,但软件不紧紧是程序。
B)程序是指令的集合,计算机语言是编写程序的工具。
C)计算机语言都是形式化的语言,它有一个语法规则和定义。
D)计算机语言只能编写程序而不能表示算法。
6、下面描述中,正确的是( )A)结构化程序设计方法是面向过程程序设计的主流。
B)算法就是计算方法。
C)一个正确的程序就是指程序书写正确。
D)计算机语言就是编写程序的工具而不是表示算法的工具。
7、下面描述中,不正确的是( )。
A)递归法的关键是必须有一个递归终止的条件。
B)递归算法要求语言具有反复自我调用子程序的能力。
C)对于同一个问题,递推算法比递归算法的执行时间要长。
D)递推算法总可以转换为一个递归算法。
8、N-S图与传统流程图比较,主要优点是( )。
A)杜绝了程序的无条件转移。
B)具有顺序、选择和循环三种基本结构。
C)简单、只管。
D)有利于编写程序。
A)B)C)D)二、填空题1、在流程图符号中,判断框中应该填写的的是________。
(判断条件)2、结构化程序设计是__________应遵循的方法和原则。
(面向过程编程)3、结构化程序必须用__________程序设计语言来编写。
(具有结构化控制语句)4、可以被连续执行的一条条指令的集合称为计算机的________。
(程序)5、只描述程序应该“做什么”,而不必描述“怎样做”的语言被称为________。
《C语言程序设计》试题一 (1)一、填空题 (1)二、选择题 (2)三、读程序题 (5)四、程序填空题 (6)五、编程题 (7)《C语言程序设计》试题一答案 (10)《C语言程序设计》试题一一、填空题1、C语言中基本的数据类型有:整形、字符型、实型。
2、C语言中普通整型变量的类型说明符为int。
4、执行下列语句int a=8; a+=a-=a*a; 后,a的值是-112 。
5、有如下语句:char A[ ]={”I am a student”}; 该字符串的长度是11 ,A[3]= m 。
6、符号”a”和’a’的区别是“a”是字符串常量‘a’是字符常量。
7、所谓“指针”就是一个变量的地址。
“&”运算符的作用是求地址。
“*”运算符的作用是表示定义了一个指针。
8、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是1,3,2二、选择题1、设整型变量a为5,使b不为2的表达式是( C )。
A. b=a/2B. b=6-(--a)C. b=a%2D. b=a>3?2:12、为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与( C )组成配对关系。
A. 缩排位置相同的ifB. 在其之前未配对的ifC. 在其之前未配对的最近的ifD.同一行上的if3、以下程序的输出结果是( D )。
int x=10,y=10;printf(“%d %d\n”,x--,--y);A. 10 10B. 9 9C. 9 10D.10 94、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为(不)。
A.P+i*2 B. P+(i-1)*2 C. P+(i-1) D. P+i5、选出下列标识符中不是合法的标识符的是(D)。
A. hot_doB. cat1C. _priD. 2ab6、以下程序的输出结果是(A)。
《程序设计基础》考试试卷一班级姓名学号____________一、选择题(20分)1.算法具有五个特性,以下选项中不属于算法特性的是(A)有穷性(B)简洁性(C)可行性(D)确定性2.以下选项中可作为C语言合法常量的是(A)-80. (B)-080 (C) (D)3.以下叙述中正确的是(A)用C语言实现的算法必须要有输入和输出操作(B)用C语言实现的算法可以没有输出但必须要有输入(C)用C程序实现的算法可以没有输入但必须要有输出(D)用C程序实现的算法可以既没有输入也没有输出4.以下不能定义为用户标识符是(A)Main (B) _0 (C) _int (D) sizeof5.以下选项中,不能作为合法常量的是(A) (B) (C)+4 (D)6.数字字符0的ASCII值为48,若有以下程序main(){char a='1',b='2';printf("%c,",b++);printf("%d\n",b-a);} 程序运行后的输出结果是(A)3,2 (B)50,2 (C)2,2 (D)2,507.有以下程序main(){int m=12,n=34;printf("%d%d",m++,++n); printf("%d%d\n",n++,++m);}程序运行后的输出结果是(A) (B) (C) (D)8.有以下语句:int b;char c[10];,则正确的输入语句是A)scanf("%d%s",&b,&c); B) scanf("%d%s",&b,c);(C)scanf("%d%s",b,c); D)scanf("%d%s",b,&c);9.有以下程序main(){int m,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p); } 若想从键盘上输入数据,使变量M中的值为123,N中的值为456,P中的值为789,则正确的输入是A)m=123n=456p=789 B)m=123 n=456 p=789 C)m=123,n=456,p=789 D)123 456 78910.有以下程序main(){int a,b,d=25;a=d/10%9;b=a&&(-1);printf("%d,%d\n",a,b); }程序运行后的输出结果是A)6,1 B)2,1 C)6,0 D)2,011.有以下程序main(){int i=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf("%d %d %d\n",i,j,k);}程序运行后的输出结果是(A)1 2 3 (B)2 3 4 (C)2 2 3 (D)2 3 312.若整型变量a、b、c、d中的值依次为:1、4、3、2。
《C语言程序设计》习题1
一、单项选择题
1.在Windows中,启动应用程序的正确方法是()。
A. 用鼠标双击该应用程序图标
B. 将该应用程序窗口最小化成图标
C. 将该应用程序窗口还原
D. 将鼠标指向该应用程序图标
2.定义如下变量:int a=2;int b=3;则a/b的结果为()。
A. 0.66667
B. 0
C. 0.7
D. 0.6666666……
3. 语句:printf("%d",(a=2)&&(b=-2);的输出结果是()。
A. 无输出
B. 结果不确定
C. -1
D. 1
4. 程序的3种基本控制结构是()。
A. 顺序、转移、选择
B. 选择、I/O、递归
C. 重复、选择、顺序
D. 重复递归、子程序、顺序
二、填空题
1. 已知大写字母A的ASCII码值是65,小写字母a的ASCII码值是97,则用八进制表示的字符常量’\101’是_______。
2.下面程序的输出结果是_______。
main()
{int i;
for(i=’A’;i<’I’;i++) printf (“%c”,i+32);
printf(“\n”);}
3. C语言是在_______的基础上发展起来的。
4. 十进制数112.375转换成十六进制数为_______。
5.int f(int x,int y){return(y-x)*x;}
main(){int a=3,b=4,c=5,d;d=f(f(3,4),f(3,5));printf(“%d\n”,d);}
程序运行后的输出结果是_______。
6. 已知:int i=8,j=10,m,n;m=++i;n=j++;语句执行后m=_______,n=_______。
7. 指向函数的指针中存放的是函数的_______。
三、判断题
1.在Turbo C中,实型数据在内存中占4个字节。
()
2. 整型常量可用十进制整数,八进制整数,二进制整数和十六进制整数表示。
()
3. C语言中的赋值语句“=”是一个运算符。
()
4.若有形参定义:int a[10];则a++是合法的表达式。
()
四、简答题
1. 关于宏定义的基本注意事项(陈述其中至少5点)。
2. 输入一个华氏温度,要求输出摄氏温度。
输出要有文字说明,取2位小数。
公式为:C=5(F-32)/9
3. 编写一个函数判断输入的年份是否是闰年(年份能被400整除或年份能被4整除但不能被100整除)。
4. 写出递归函数的主要特征。
5. 打印出所有的“水仙花数”。
所谓水仙花数是指一个3位数,其各位数字的立方和等于该数本身。
例如:153是一个“水仙花数”,因为153=13+53+33。
C语言程序设计习题1答案
四、简答题
1.(1)#号与define之间一般不留空格,但宏名左右两边必须至少用一个空格分开。
(2)宏定义与变量定义含义不同,它只做字符替换,并不分配空间。
(3)因为不是C语句,所以宏定义结尾不必加分号。
(4)C语言允许#defin命令出现在程序中的任何位置。
(5)一个经过#define定义的宏名,也可以在程序中通过#undef命令终止其作用域。
(6) 宏定义还可以定义运算符、表达式。
2.答: Main()
{
Float c,f;
Printf(“请输入一个华氏温度:\n”);
Scanf(“%f”,&f);
C=(5.0/9.0)*(f-32);/*注意5和9要实型表示,否则5/9的值为0*/
Printf(“摄氏温度为:%5.2f\n”,c);
}
3. 答:Void main()
{
Int y,f;
Scanf(“%d”,&y);
If(y%400 == 0) f=1;
Else if (y%4= = 0)&&(y%100!=0) f=1;
Else f=0;
If (f) printf (“%d is”,y);
Else printf(“%d is not”,y);
Printf(“a leap year.\n”);
}
4. 答:
(1)为求解规模为n的问题,设法将它分解为规模较小的问题,然后从这些小问题的解中方便地构造出大问题的解,并且这些规模较小的问题也能采用同样的分解方法,分解成规模更小的问题,并从这些小问题的解构造出规模较大问题的解。
(2)从程序设计的角度来说,递归过程必须解决两个问题:一是递归计算的公式,二是递归结束的条件。
5. 答:Main()
{
int i,j,k,n;
printf(““水仙花数”是:”);
for (n=100;n<1000;n++)
{
i=n/100;
j=n/10-i*10;
k=n%10;
if (n = = i*i*i+j*j*j+k*k*k)
printf(“%4d”,n);
}
Printf(“\n”);
}。