C语言例题与解答(5)
C语言经典例题及答案
C语言经典例题及答案C语言经典例题及答案引导语:C语言应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。
以下是店铺整理的C语言经典例题及答案,欢迎参考阅读!一、求一个任意边长的矩形面积。
#includevoid main(){int w,h,sum;scanf("%d%d",&w,&h);sum=w*h;printf("area=%d ",sum);}二、求一个任意半径的圆的`面积及周长。
#define PI 3.14159#includevoid main(){float r,area,c;scanf("%f",&r);area=PI*r*r;c=2*PI*r;printf("area=%f circle=%f ",area,c);}??三、已知:w=5, y=4, z=2, 求表达式:w*y/z的值,并输出。
##includevoid main(){ int w,y,z,r;w=5;y=4;z=2;r=w*y/z;printf("%5d",r);}一、从键盘上输入三个数,求出其中的最大值,并输出。
#includevoid main(){int a,b,c,max;scanf("%d%d%d",&a,&b,&c);max=a;if(max<b) max=b;if(max<c) max=c;printf("max=%d ",max);}??二、求sin300+sin600+cos300+cos600之和。
(注意:30*3.14159/180)#include#define PI 3.14159#includevoid main(){float a,b,sum;a=30*PI/180;b=60*PI/180;sum=sin(a)+sin(b)+cos(a)+cos(60);printf("total=%f ",sum);}三、比较两个数的大小。
C语言编程题精选及答案.
C语言编程题精选C语言学习2010-11-30 15:48:25 阅读47 评论0 字号:大中小订阅1. 有函数F(x)=(x+1)2和G(x)=2x+1,输入X值计算F(G(x))的值。
2. 任意输入三个字符,要求首先按逆序输出,然后同行原序输出。
3. 在屏幕上输出如下图案(考虑能否将输出的行数由输入的值来控制):************************4. 在屏幕上输出如下图案(考虑将输出的行数由输入的值来控制):***************5. 编程输出如下格式图形(考虑将输出的行数由输入的值来控制):****************6. 编程输出如下格式图形(考虑将输出的行数由输入的值来控制):**********7. 编程输出如下格式图形(考虑将输出的行数由输入的值来控制):****************8. 编程输出如下格式图形(考虑将输出的行数由输入的值来控制):*************************9. 编程输出如下格式图形(考虑将输出的行数由输入的值来控制):****************10. 编程输出如下格式图形(考虑将输出的行数由输入的值来控制):*************************11. 编写打印如下图形的程序(考虑将输出的行数由输入的值来控制):* * * * ** * * * ** * * * ** * * * *12. 编制程序打印如下图形(考虑将输出的行数由输入的值来控制):ABBBCCCCCDDDDDDDEEEEEEEEEFFFFFFFFFFFGGGGGGGGGGGGG13. 编程打印图形(考虑将输出的行数由输入的值来控制):11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 5 6 5 4 3 2 114. 编程打印图形(考虑将输出的行数由输入的值来控制):11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 5 6 5 4 3 2 115. 编程打印图形(考虑将输出的行数由输入的值来控制):1 2 3 4 5 6 5 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 3 2 11 2 3 2 11 2 1116. 编程打印图形(考虑将输出的行数由输入的值来控制):11 11 2 11 3 3 11 4 6 4 11 5 10 10 1 117. 编程打印图形(考虑将输出的行数由输入的值来控制):11 11 2 11 3 3 11 4 6 4 11 5 10 10 1 118. 输入一个大写字母打印菱形。
c语言c操作题库及详解答案
c语言c操作题库及详解答案C语言C操作题库及详解答案1. 请编写一个C程序,实现两个整数的加法运算,并输出结果。
答案:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数相加的结果是:%d\n", sum);return 0;}```2. 编写一个C程序,实现字符串的复制功能。
答案:```c#include <stdio.h>#include <string.h>int main() {char src[] = "Hello, World!";char dest[50];strcpy(dest, src);printf("复制后的字符串是:%s\n", dest);return 0;}```3. 请编写一个C程序,实现求一个整数的阶乘。
答案:```c#include <stdio.h>int factorial(int n) {if (n == 0)return 1;elsereturn n * factorial(n - 1);}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("%d的阶乘是:%d\n", num, factorial(num)); return 0;}```4. 编写一个C程序,实现判断一个数是否为素数。
答案:```c#include <stdio.h>#include <math.h>int isPrime(int n) {if (n <= 1)return 0;for (int i = 2; i <= sqrt(n); ++i) { if (n % i == 0)return 0;}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num))printf("%d是素数。
C语言经典例题及答案
一、求一个任意边长的矩形面积。
#include <stdio.h>void main(){int w,h,sum;scanf("%d%d",&w,&h);sum=w*h;printf("area=%d\n",sum);}二、求一个任意半径的圆的面积及周长。
#define PI 3.14159#include <stdio.h>void main(){float r,area,c;scanf("%f",&r);area=PI*r*r;c=2*PI*r;printf("area=%f\ncircle=%f\n",area,c);}三、已知:w=5, y=4, z=2, 求表达式:w*y/z的值,并输出。
##include <stdio.h>void main(){ int w,y,z,r;w=5;y=4;z=2;r=w*y/z;printf("%5d",r);}一、从键盘上输入三个数,求出其中的最大值,并输出。
#include <stdio.h>void main(){int a,b,c,max;scanf("%d%d%d",&a,&b,&c);max=a;if(max<b) max=b;if(max<c) max=c;printf("max=%d\n",max);}二、求sin300。
+sin600+cos300+cos600之和。
(注意:30*3.14159/180)#include <stdio.h>#define PI 3.14159#include <math.h>void main(){float a,b,sum;a=30*PI/180;b=60*PI/180;sum=sin(a)+sin(b)+cos(a)+cos(60);printf("total=%f\n",sum);}三、比较两个数的大小。
C语言经典例题,讲解,免费
54.编程判断对输入的任何一个年份是否是闰年,将结果输出。
#include <stdio.h>
void main()
{
int n;
printf("输入年份:");
scanf("%d",&n);
if (n%4==0&&n%100!=0||n%400==0) printf("闰年\n");
y=0,x=a||x=-a; y=sqrt(a*a-x*x), -a<x<a; y=x,x<-a||x>a.
#include <stdio.h>
#include <math.h>
void main()
{
float x,y,a;
printf("输入A值[A>0]:");
scanf("%f",&a);
for(i=0;i<n;i++)
{
if (a[i]%2==1)
{printf ("其中的奇数是%d\n",a[i]);
sum=sum+a[i];}
}printf ("奇数和是%d\n",sum);
}
66.有一个两位数XY,X是十位,Y是个位;给出X+Y的值和X*Y的值;编程实现让用户猜测这个两位数十多少?根据猜测给出不同的提示。
scanf("%f",&a[i]);
}
printf("\n");
printf("\n原始数据为:\n");
C语言经典习题实例及讲解
8 10 16 20 27
while(str[i]!='\0')
{ nc=str[i];
if(nc!=' '&& pc==' ') num++;
t h e i s d o \0
pc=nc; i++;
}
printf("\nThe number of words is:%d",num);
num=3
}
程 序 示 例(六)
例6 将一个数插入到升序的数列中,使插入后的数列仍然有 序。
printf("Input %d number:\n",N); for (i=0;i<N;i++) scanf("%d",&array[i]); printf("\n"); for (i=0;i<N-1;i++) { k=i;
for (j=i+1;j<N;j++) if(array[j]<array[k]) k=j; if (i!=k)
is:a[%d][%d]=%d\n",i,c,a[i][c]); i++; } if(find==0)printf("not been found"); }
18 12 19 13 79 65 52 38 63 88 71 49
rmax= 19 find=1
运行结果: The matrix is: 18 12 19 13 79 65 52 38 63 88 71 49 The saddle pointer is: a[0][2]=19
C语言习题参考答案1-5
《C语言》作业第二章2.4 用传统流程图表示求解以下问题的算法。
(1)有两个瓶子A和B,分别盛放醋和酱油,要求将它们互换(即A瓶原来盛醋,现改盛酱油,B瓶则相反)。
解:显然,如果只有两个瓶子,肯定不能完成此任务,必须有一个空瓶C作为过渡。
步骤如图2.4:(2)依次将3个数输入,要求输出其中最大的数。
2.5 用N-S图表示2.4题中算法(2)。
第三章3.5 字符常量和字符串常量有什么区别?解:字符常量是一个字符,在程序中字符是用单引号括起来的。
字符串变量是有0个或若干个字符组合而成,在程序中字符串是用双引号括起来,在存储时系统自动在字符串最后面加一个结束符号’\0’。
3.9 求下面算术表达式的值。
(1) x+a%3*(int)(x+y)%2/4设x=2.5,a=7,y=4.7(2) (float)(a+b)/2+(int)x%(int)y设a=2,b=3,x=3.5,y=2.5解:(1)2.5(2)3.53.10 写出程序运行的结果#include<stdio.h>void main(){int i,j,m,n;i=8; j=10;m=++i; n=j++;printf(”%d,%d,%d,%d\n”,i,j,m,n);}解:运行结果为:9,10,9,113.12 写出下面赋值表达式运算后a的值,设原来a=12, n=5。
a 和n都定义为整型变量。
(1) a+=a (2)a-=2 (3)a * =2+3(4)a%=(n%=2 ) (5)a/=a+a (6)a+=a-=a*=a解:(1)24 (2)10 (3)60(4)0 (5)0 (6)0第4章4.6 用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=‘A’,c2=‘a’,问在键盘上如何输入?(空格用_表示)#include<stdio.h>void main(){int a,b;float x,y;char c1,c2;scanf(“a=%d_b=%d”,&a,&b);scanf(“%f_%e”,&x,&y);scanf(“_%c_%c”,&c1,&c2);printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n”,a,b,x,y,c1,c2); }解:可按如下方式在键盘上输入:a=3_b=78.5_71.82A_a第五章1.补充题,描述下列条件1)a 小于b 或小于c2, 但a 和b 都大于c2)a 和b 中有一个大于c3)a 是非正整数4)a 是奇数5)a 不能被b整除解:(1)a<b||<c2&&a>c&&b>c(2)(a>c&&b<=c)||(a<=c&&b>c)(3)!(a%2==0||a%2==1)(4)a%2==1(5)a/b!=0第5.3题写出各逻辑表达式的值,设a=3,b=4,c=5。
100个经典C语言编程例子(答案另附)
100个经典C语言编程例子(答案另附)1:计算 A+B 的问题时间限制:1000MS 内存限制:10000K总提交数:1347 正确数:655问题描述输入两个整数 a 和 b ,计算 a+b 的结果并输出。
输入两个整数输出一个整数输入样例1 2输出样例32:Hello World!时间限制:1000MS 内存限制:65536K总提交数:848 正确数:693问题描述编写第一个C语言程序。
在屏幕上输出:Hello World!输入程序没有输入输出Hello World!输入样例输出样例Hello World!提示1、输出的内容要与题目的要求完全一样,不能多字符也不能少字符。
3:两个整数的值互换时间限制:1000MS 内存限制:65536K总提交数:1235 正确数:530问题描述输入两个整数a,b ,将 a 和 b 的值互换,并输出。
例如:输入: 2 5输出: 5 2输入两个整数输出两个整数输入样例2 5输出样例5 2提示注意输入和输出的格式,两个数据之间用一个空格隔开。
问题来源4:计算三门课程总分和平均分时间限制:1000MS 内存限制:65536K总提交数:1190 正确数:482问题描述输入三门课程的成绩,输出总分和平均分。
要求:(1)输入三个数,用空格隔开。
输入的数可以是小数。
(2)输出两个数,用空格隔开。
输出的数保留两位小数。
例如:输入: 75 80 90输出: 245.00 81.67 输入输入三个数,用空格隔开。
输入的数可以是小数。
输出输出两个数,用空格隔开。
输出的数保留两位小数。
输入样例75 80 90输出样例245.00 81.67问题来源5:鸡兔同笼问题时间限制:1000MS 内存限制:65536K总提交数:872 正确数:443问题描述这个问题,是我国古代著名趣题之一。
大约在1500年前,《孙子算经》中就记载了这个有趣的问题。
书中是这样叙述的:“今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几何?这四句话的意思是:有若干只鸡兔同在一个笼子里,从上面数,有35个头;从下面数,有94只脚。
c语言习题及答案
c语言习题及答案C语言习题及答案C语言是一种广泛应用于系统软件和应用软件开发的高级程序设计语言。
对于初学者来说,掌握C语言的基础知识是非常重要的。
为了帮助大家更好地学习C语言,下面将介绍一些常见的C语言习题及答案。
1. 什么是C语言的基本数据类型?请列举并简要介绍每种数据类型。
答:C语言的基本数据类型包括整型(int)、字符型(char)、浮点型(float)、双精度浮点型(double)和无类型(void)。
其中,整型用于表示整数,字符型用于表示单个字符,浮点型和双精度浮点型用于表示小数,无类型用于表示没有值的特殊情况。
2. 编写一个C程序,实现输入两个整数,然后输出它们的和。
答:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("它们的和为:%d\n", sum);return 0;}```3. 编写一个C程序,实现输入一个字符,然后判断它是大写字母、小写字母还是数字。
答:```c#include <stdio.h>int main() {char ch;printf("请输入一个字符:");scanf("%c", &ch);if (ch >= 'A' && ch <= 'Z') {printf("它是大写字母\n");} else if (ch >= 'a' && ch <= 'z') {printf("它是小写字母\n");} else if (ch >= '0' && ch <= '9') {printf("它是数字\n");} else {printf("它是其他字符\n");}return 0;}```通过以上习题的学习,相信大家对C语言的基础知识有了更深入的了解。
c语言编程习题及答案
c语言编程习题及答案C语言是一种广泛使用的计算机编程语言,以其高效性和灵活性而闻名。
以下是一些C语言编程习题及其答案,供学习者练习和参考。
习题1:求两个数的和编写一个C程序,输入两个整数,输出它们的和。
```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("%d + %d = %d\n", num1, num2, sum);return 0;}```习题2:计算圆的面积编写一个C程序,输入圆的半径,计算并输出圆的面积。
```c#include <stdio.h>#define PI 3.14159int main() {double radius, area;printf("请输入圆的半径:");scanf("%lf", &radius);area = PI * radius * radius;printf("圆的面积是:%.2f\n", area);return 0;}```习题3:判断一个数是奇数还是偶数编写一个C程序,输入一个整数,判断并输出它是奇数还是偶数。
```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("%d 是偶数。
\n", num);} else {printf("%d 是奇数。
c语言指针习题及答案
c语言指针习题及答案C语言指针习题及答案C语言作为一门广泛应用于软件开发和系统编程的编程语言,指针是其重要的特性之一。
掌握指针的使用对于理解和编写高效的C程序至关重要。
本文将介绍一些常见的C语言指针习题,并提供相应的答案,帮助读者更好地理解和掌握指针的概念和用法。
1. 习题一:交换两个变量的值请编写一个函数,接受两个整型指针作为参数,实现交换两个变量的值。
例如,如果输入a=10,b=20,函数执行后,a=20,b=10。
答案:```cvoid swap(int *a, int *b) {int temp = *a;*a = *b;*b = temp;}```2. 习题二:查找数组中的最大值和最小值请编写一个函数,接受一个整型数组和数组长度作为参数,返回数组中的最大值和最小值。
例如,对于数组[5, 2, 9, 1, 7],函数应该返回最大值9和最小值1。
答案:```cvoid findMinMax(int *arr, int length, int *max, int *min) {*max = *min = arr[0];for (int i = 1; i < length; i++) {if (arr[i] > *max) {*max = arr[i];}if (arr[i] < *min) {*min = arr[i];}}}```3. 习题三:计算字符串长度请编写一个函数,接受一个字符串作为参数,返回字符串的长度。
例如,对于字符串"Hello, World!",函数应该返回12。
答案:```cint stringLength(char *str) {int length = 0;while (*str != '\0') {length++;str++;}return length;}```4. 习题四:复制字符串请编写一个函数,接受两个字符串指针作为参数,将第一个字符串复制到第二个字符串中。
c语言上机试题库及答案
c语言上机试题库及答案1. 题目一:字符串翻转要求:编写一个C语言程序,实现字符串的翻转功能。
```c#include <stdio.h>#include <string.h>void reverseString(char *str) {int len = strlen(str);char temp;for(int i = 0; i < len / 2; i++) {temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[100];printf("Enter a string: ");scanf("%s", str);reverseString(str);printf("Reversed string: %s\n", str);return 0;}```2. 题目二:计算数组中的最大值要求:编写一个C语言程序,计算并输出一个整数数组中的最大值。
```c#include <stdio.h>int findMax(int arr[], int size) {int max = arr[0];for(int i = 1; i < size; i++) {if(arr[i] > max) {max = arr[i];}}return max;}int main() {int arr[] = {10, 45, 23, 67, 89, 34};int size = sizeof(arr) / sizeof(arr[0]);int max = findMax(arr, size);printf("The maximum value in the array is: %d\n", max); return 0;}```3. 题目三:实现二分查找要求:编写一个C语言程序,实现一个二分查找算法,查找一个有序数组中是否存在目标值。
C语言程序设计实例分析30道(含答案)
int main()
{
int i,x,y,z;
for(i=100;i<1000;i++)
{
x=i%10;
y=i/10%10;
z=i/100%10;
if(i==(x*x*x+y*y*y+z*z*z))
printf("%d\n",i);
}
return 0;
}
【题目12】:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
【程序分析】:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于(小于的时候,继续执行循环)n,则说明分解质因数的过程已经结束,另外打印出即可。
(2)但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n.重复执行第二步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
高于100万元时,超过100万元的部分按1%提成。
从键盘输入当月利润I,求应发放奖金总数?
【程序分析】:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。
【程序源代码】:
#include<stdio.h>
int main()
{
double i;
double bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
{
int score;
char grade;
printf("请输入分数:");
scanf("%d",&score);
grade=(score>=90)?'A':((score>=60)?'B':'C');
c语言字符串经典例题
c语言字符串经典例题含解答共5道当提到经典的C 语言字符串例题时,通常涉及字符串的基本操作、处理、以及一些算法。
以下是其中的5道经典例题及其解答:1. 逆序输出字符串题目:编写一个程序,输入一个字符串,然后逆序输出该字符串。
解答:```c#include <stdio.h>#include <string.h>int main() {char str[100];printf("Enter a string: ");gets(str);printf("Reversed string: ");for (int i = strlen(str) - 1; i >= 0; i--) {printf("%c", str[i]);}return 0;}```2. 统计字符串中的字符个数题目:编写一个程序,输入一个字符串,统计其中字母、数字和其他字符的个数。
解答:```c#include <stdio.h>#include <ctype.h>int main() {char str[100];printf("Enter a string: ");gets(str);int letters = 0, digits = 0, others = 0;for (int i = 0; str[i] != '\0'; i++) {if (isalpha(str[i]))letters++;else if (isdigit(str[i]))digits++;elseothers++;}printf("Letters: %d\n", letters);printf("Digits: %d\n", digits);printf("Other characters: %d\n", others);return 0;}```3. 查找字符串中的子字符串题目:编写一个程序,输入一个主字符串和一个子字符串,判断子字符串是否在主字符串中,并输出匹配位置。
C语言编程题带答案
C语言编程题带答案在学习 C 语言编程的过程中,通过做一些编程题能够很好地提升我们的编程能力和对知识点的理解。
下面,就让我们一起来看看几道具有代表性的 C 语言编程题及其答案。
题目一:求两个整数的最大值要求编写一个 C 语言程序,输入两个整数,输出其中的最大值。
```cinclude <stdioh>int main(){int num1, num2, max;printf("请输入第一个整数:");scanf("%d",&num1);printf("请输入第二个整数:");scanf("%d",&num2);if (num1 > num2) {max = num1;} else {max = num2;}printf("两个数中的最大值是:%d\n", max);return 0;}```这道题主要考查了我们对条件判断语句(ifelse)的运用。
通过比较两个数的大小,将较大的值赋给变量`max`,最后输出结果。
题目二:计算 1 到 100 的整数之和编写一个 C 语言程序,计算 1 到 100 之间所有整数的和。
```cinclude <stdioh>int main(){int sum = 0;int i;for (i = 1; i <= 100; i++){sum += i;}printf("1 到 100 的整数之和为:%d\n", sum);return 0;}```这道题使用了循环语句(for 循环)来实现累加求和的功能。
从 1开始,每次循环将当前的整数加到`sum`变量中,直到循环到100 为止。
题目三:判断一个数是否为素数编写一个 C 语言程序,判断输入的一个整数是否为素数。
```cinclude <stdioh>int isPrime(int num) {int i;if (num <= 1) {return 0;}for (i = 2; i i <= num; i++){if (num % i == 0) {return 0;}}return 1;}int main(){int num;printf("请输入一个整数:");scanf("%d",&num);if (isPrime(num)){printf("%d 是素数\n", num);} else {printf("%d 不是素数\n", num);}return 0;}```在这个程序中,我们定义了一个函数`isPrime`来判断一个数是否为素数。
C语言的经典习题及程序答案
C语言的经典习题及程序答案1.输入一个正整数求出它是几位数;输出原数和位数。
#include int digit; void main() {void count(char[]);char text[80];printf(\input numbers:\\n\ gets(text);printf(\ puts(text); digit=0; count(text);printf(\}void count(char str[]) {int i;for(i=0;str[i]!='\\0';i++)if(str[i]>='0'&&str[i]<='9')digit++; }2.输入一个正整数,输出原数并逆序打印出各位数字。
#includevoid invertLongInt(long); void main() {unsigned long iNumber;printf(\input a number:\\n\ scanf(\printf(\input number is:%ld\\n\ printf(\ invertLongInt(iNumber); }void invertLongInt(long x) {if(x>=0&&x<=9) printf(\ else{printf(\ invertLongInt(x/10);}}3.求1!+2!+3!+??+20!,将结果输出。
#include void main() {float s=0,t=1; int n;for(n=1;n<=20;n++) { t=t*n; s=s+t;}printf(\\\n\}4.打印以下图案: * *** ***** ******* #include void main() {int i,j;printf(\static char picture[4][7]={{' ',' ',' ','*'},{' ',' ','*','*','*'},{' ','*','*','*','*','*'},{'*','*','*','*','*','*','*'}}; for(i=0;i<=3;i++) {for(j=0;j<=6;j++)printf(\ printf(\ } }5.打印以下图案: * ** *******#include void main(){int i,j;printf(\ char picture[4][4]={{'*'}, {'*','*'},{'*','*','*'},{'*','*','*','*'}}; for(i=0;i<=3;i++) {for(j=0;j<=3;j++)printf(\ printf(\ } }6.求下列试子的值:1-1/2+1/3-1/4+??+1/99-1/100,将结果输出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言例题与解答(5)试卷分析一、选择题(下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的)(15)以下非法的赋值语句是______。
A) n=(i=2,++i); B) j++; C) ++(i+1); D) x=j>0;【解】C(16)设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是______。
A) 6.500000 B) 6 C) 5.500000 D) 6.000000【解】D(17)已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是______。
A) scanf("%2d%2d%2d",&i,&j,&k);B) scanf(""%d %d %d",&i,&j,&k);C) scanf("%d,%d,%d",&i,&j,&k);D) scanf("i=%d,j=%d,k=%d",&i,&j,&k);【解】C(18)与数学式子3乘以x的n次方/(2x-1)对应的C语言表达式是______。
A) 3*x^n/(2*x-1)B) 3*x**n/(2*x-1)C) 3*pow(x,n)*(1/(2*x-1))D) 3*pow(n,x)/(2*x-1)【解】C(19)设有定义:long x=-123456L;,则以下能够正确输出变量x值的语句是______。
A) printf("x=%d\n",x);B) printf("x=%ld\n",x);C) printf("x=%8dL\n",x);D) printf("x=%LD\n",x);【解】B(20)若有以下程序:main(){int k=2,i=2,m;m=(k+=i*=k);printf("%d,%d\n",m,i);}执行后的输出结果是______。
A) 8,6 B) 8,3 C) 6,4 D) 7,4【解】C(21)已有定义:int x=3,y=4,z=5;,则表达式 !(x+y)+z-1&&y+z/2的值是______。
A) 6 B) 0 C) 2 D) 1【解】D(23)以下选项中,与k=n++完全等价的表达式是_______。
A) k=n,n=n+1 B) n=n+1,k=n C) k=++n D) k+=n+1【解】A(24)以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:main(){int n,k;float score,sum,ave;sum=0.0;for (n=1;n<=10;n++){for(k=1;k<=4;k++){scanf("%f",&score);sum+=score;}ave=sum/4.0;printf("NO%d:%f\n",n,ave);}}上述程序运行后结果不正确,调试中发现有一条语句出现在程序的位置不正确。
这条语句是______。
A) sum=0.0;B) sum+=score;C) ave=sum/4.0;D) printf("NO%d:%f\n",n,ave);【解】A(25)有以下程序段int n=0,p;do{scanf("%d",&p);n++;} while(p!=12345 && n<3);此处do-while循环的结束条件是______。
A) p的值不等于12345并且n的值小于3B) p的值等于12345并且n的值大于等于3C) p的值不等于12345或者n的值小于3D) p的值等于12345或者n的值大于等于3【解】D(26)有以下程序main(){int a=15,b=21,m=0;switch(a % 3){case 0:m++;break;case 1:m++;switch(b % 2){default:m++;case 0:m++;break;}}printf("%d\n",m);}程序运行后的输出结果是______。
A) 1 B) 2 C) 3 D) 4【解】A(27)C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是______。
A) void B) int C) float D) double【解】B(28)若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是______。
A) p=q; B) *p=*q; C) n=*q; D) p=n;【解】D(30)有以下程序void fun(char *c, int d){*c=*c+1;d=d+1;printf("%c,%c,",*c,d);}main(){char a='A', b='a';fun(&b,a);printf("%c,%c\n",a,b);}程序运行后的输出结果是______。
A) B,a,B,a B) a,B,a,B C) A,b,A,b D) b,B,A,b【解】D(31)以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序void sort(int a[], int n){int i,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if (a[i] < a[j]){t = a[i];a[i] = a[j];a[j] = t;}}main(){int aa[10]={1,2,3,4,5,6,7,8,9,10}, i;sort(&aa[3],5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\n");}程序运行后的输出结果是______。
A} 1,2,3,4,5,6,7,8,9,10,B} 10,9,8,7,6,5,4,3,2,1,C} 1,2,3,8,7,6,5,4,9,10,D} 1,2,10,9,8,7,6,5,4,3,【解】C(32)有以下程序int f(int n){if (n == 1)return 1;elsereturn f(n-1)+1;}main(){int i,j=0;for(i=1;i<3;i++)j += f(i);printf("%d\n",j);}程序运行后的输出结果是______。
A) 4 B) 3 C) 2 D) 1【解】B【说明】递推式为(n-1)+1(33)有以下程序main(){char a[]={'a','b','c','d','e','f','g','h','\0'};int i,j;i=sizeof(a);j=strlen(a);printf("%d,%d\n",i,j);}程序运行后的输出结果是______。
A) 9,9 B) 8,9 C) 1,8 D) 9,8【解】D(34)以下程序中的函数reverse的功能是将a所指数组中的内容进行逆置。
void reverse(int a[],int n){int i,t;for(i=0; i <= (n – 1) / 2; i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){int b[10]={1,2,3,4,5,6,7,8,9,10};int i,s=0;reverse(b,8);for(i=6;i<10;i++)s+=b[i];printf("%d\n",s);}程序运行后的输出结果是______。
A} 22 B} 10 C} 34 D} 30【解】A(35)有以下程序main(){int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};int i,s=0;for(i=0; i<4; i++)s+=aa[i][1];printf("%d\n",s);}程序运行后的输出结果是______。
A} 11 B} 19 C} 13 D} 20【解】B(36)有以下程序#include <string.h>main(){char *p="abcde\0fghjik\0";printf("%d\n",strlen(p));}程序运行后的输出结果是______。
A) 12 B) 15 C) 6 D) 5【解】D(37)程序中头文件type1.h的内容是:#define N 5#define M1 N*3程序如下:#include "type1.h"#define M2 N*2main(){int i;i=M1+M2;printf("%d\n",i);}程序编译后运行的输出结果是______。
A) 10 B) 20 C) 25 D) 30【解】C(38)有以下程序#include <stdio.h>main(){FILE *fp; int i=20,j=30,k,n;fp=fopen("d1.dat","w");fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);fclose(fp);fp=fopen("d1.dat","r");fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}程序运行后的输出结果是_____。
A) 20 30 B) 20 50 C) 30 50 D) 30 20【解】A(39)以下叙述中错误的是______。
A) 二进制文件打开后可以先读文件的末尾,而顺序文件不可以B) 在程序结束时,应当用fclose函数关闭已打开的文件C) 利用fread函数从二进制文件中读数据,可以用数组名给数组中所有元素读入数据D) 不可以用FILE定义指向二进制文件的文件指针【解】D(41)有以下程序int fa(int x){return x * x;}int fb(int x){return x * x * x;}int f(int (*f1)(),int (*f2)(),int x){return f2(x) - f1(x);}main(){int i;I = f(fa, fb, 2);printf("%d\n", i);}程序运行后的输出结果是______。