重庆邮电大学C语言答案 (1)
- 格式:doc
- 大小:88.00 KB
- 文档页数:35
大学c语言考试题库及答案一、选择题1. 下列关于C语言中变量的描述,哪个是正确的?A. 变量必须先定义后使用B. 变量的类型不能改变C. 变量可以在任何地方定义D. 所有变量都必须初始化后才能使用答案:A2. C语言中,一个整数除以另一个整数,结果是什么类型的数据?A. 整数型B. 浮点型C. 长整型D. 无符号整数型答案:A3. 在C语言中,哪个函数用于计算字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A4. 如果一个指针变量p指向一个int类型的变量,那么表达式*p++的值是什么?A. p指向的变量的当前值B. p指向的变量的下一个值C. p指向的变量的前一个值D. 无定义答案:A5. C语言中,以下哪个关键字用于定义一个函数?A. intB. floatC. voidD. char答案:C二、填空题1. C语言中,________关键字用于定义一个结构体。
答案:struct2. 在C语言中,________运算符用于计算两个整数的乘积。
答案:*3. 当需要频繁修改数组中的元素时,应使用________类型的数组。
答案:动态4. C语言中,________函数用于将字符串s复制到t所指向的内存空间。
答案:strcpy()5. 在C语言中,________关键字用于声明一个无限循环。
答案:for 或 while三、简答题1. 请简述C语言中数组和指针的关系。
答案:在C语言中,数组名可以作为指针使用。
数组的每个元素都可以通过数组名加上索引来访问。
指针变量可以指向数组的第一个元素,并通过指针算术来访问数组的其他元素。
数组的地址可以通过指针传递给函数,从而在函数内部访问数组。
2. 解释C语言中的“宏”是什么,并给出一个使用宏的例子。
答案:宏是C语言中的一个预处理指令,它允许定义一个可以被编译器替换的文本块。
宏通常用于定义常量、简化复杂的表达式或者创建可重复使用的代码块。
C语言程序实验报告姓名:班级:学号:学院:自动化第一章熟悉c语言编程环境实验目的及要求(1)了解c语言编程环境visual c++6.0的组成。
(2)了解并掌握c语言集成开发环境visual c++6.0的使用方法(3)了解并掌握c语言程序的基本结构,能够编写简单的程序(4)掌握c语言程序的上机步骤实验步骤:例1-1:编写一个简单的c语言程序,在屏幕上显示:”Hello World!”。
#include<stdio.h>void main(){printf("Hello World!\n");}实习题目1.41.写出下面程序执行结果。
#include<stdio.h>void main(){printf("我可以写c语言程序了!\n");}2编写c程序#include<stdio.h>void main(){printf("*\n");printf("**\n");printf("***\n");}第二章简单c语言程序设计实验目的及要求(1)进一步熟悉并掌握visual c++6.0集成开发环境的使用(2)熟练掌握c语言程序上机编写的步骤(3)掌握算术表达式、赋值表达式的使用(4)掌握c语言输入、输出函数的使用(5)能够编写简单的c语言程序(6)掌握简单c语言程序的差错方法实验步骤:例2-1:已知两个变量a、b,其值分别为100和200,编程求它们的和sum。
#include<stdio.h>void main(){int a,b,SUM;a=100;b=200;SUM=a+b;printf("他们的和是%d\n”,SUM);}例2-2已知一个圆柱体的半径r为6,高h为7,编写程序求圆柱体的体积。
#include<stdio.h>void main(){float r,h;float s;float v;r=6.0;h=7.0;s=3.14*r*r;v=s*h;printf("圆柱体的体积为%f\n",v);}2.4实习题目1写程序结果#include<stdio.h>void main(){int a;float b;a=4;b=9.5;printf("a=%d,b=%4.2f\n",a,b);}2已知直角三角形的两个直角边长分别为3、4,求此直角三角形的斜边长c及面积s。
大学c语言考试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言的关键字?A. intB. floatC. doubleD. string答案:A2. C语言中,以下哪个是正确的数据类型?A. IntegerB. CharacterC. Both A and BD. None of the above答案:C3. 在C语言中,以下哪个是合法的变量名?A. 2variableB. variable2C. variable-twoD. variable_two答案:B4. 以下哪个运算符用于求两个数的余数?A. /B. %C.D. ++答案:B5. 在C语言中,哪个函数用于计算并返回一个浮点数的平方根?A. sqrt()B. pow()C. log()D. exp()答案:A6. C语言中,以下哪个语句用于结束程序?A. break;B. continue;C. return;D. exit();答案:D7. 在C语言中,以下哪个是正确的数组声明?A. int numbers;B. int numbers[10];C. int numbers = 10;D. int numbers[] = {1, 2, 3};答案:B8. C语言中,以下哪个是正确的函数定义?A. int function(int a, int b) { ... }B. void function(int a, int b) { ... }C. int function(int a, int b) = { ... }D. int function(int a, int b) = 0;答案:B9. 在C语言中,以下哪个是正确的条件语句?A. if (a > b)B. if a > bC. if (a > b) { ... }D. if (a > b) then { ... }答案:C10. C语言中,以下哪个是正确的循环结构?A. for (int i = 0; i < 10; i++)B. while (i < 10)C. do { ... } while (condition)D. All of the above答案:D二、简答题(每题5分,共10分)1. 简述C语言中指针的概念及其用途。
2023年重邮复试c语言笔试一、选择题(每题2分,共20分)以下哪个选项是C语言的关键字?A. mainB. printfC. intD. outputC语言中,一个int类型变量在内存中占用的字节数一般是?A. 1B. 2C. 4D. 8关于C语言中的函数,以下说法正确的是?A. 函数只能返回一个值B. 函数可以返回多个值C. 函数不能被其他函数调用D. 函数必须定义在main函数之前下列哪个选项是C语言中合法的字符常量?A. 'a'B. "a"C. aD. \a以下哪个运算符在C语言中用于取模运算?A. %B. /C. *D. ++在C语言中,以下哪个语句用于声明一个整型变量?A. int a;B. float a;C. char a;D. double a;关于C语言中的数组,以下说法错误的是?A. 数组的下标是从0开始的B. 数组的大小在声明后是可以改变的C. 可以通过下标访问数组中的元素D. 数组中的元素可以是不同的数据类型在C语言中,以下哪个函数用于从标准输入读取一个字符?A. scanf()B. getchar()C. printf()D. putchar()以下哪个选项是C语言中的条件语句?A. if语句B. for语句C. while语句D. switch语句关于C语言中的指针,以下说法正确的是?A. 指针是一个变量,存储的是另一个变量的地址B. 指针就是一个地址,不能用来存储数据C. 指针的大小与它所指向的变量类型有关D. 指针不能进行加法运算二、填空题(每题2分,共10分)C语言程序从_______ 函数开始执行。
在C语言中,定义一个名为num的整型变量,应使用语句_______。
若要输出一个整数a的值,应使用printf函数的格式为_______。
在C语言中,字符串是以_______ 字符作为结束标志的。
C语言中的注释有两种方式,一种是单行注释,以_______ 开始;另一种是多行注释,以_______ 开始,以_______ 结束。
(2)编写程序输出1-1000之间能够被5整除的所有整数,并求出这些整数的和输出。
(3) 从键盘输入10个正的整数,找出其中的素数输出。
答: #include#includeint f(int x){int i;for(i=2;i<=sqrt(x);i++)if(x%i==0) return 0;return 1}void main(){int a[10],i,n=0,j,t;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)if( f(a[i]) n++;else a[i]=0;for(i=0;i<9;i++)for(j=0;j<9-i;j++)if( a[j]<A[J+1] ) {t=a[j];a[j]=a[j+1];a[j+1]=t;}printf("共有%d个素数,它们是:",n);(4)编写程序打印下列图案答:#include "stdio.h"void main() {for (int i = 0;i <= 4;i++) {for (int j = 0;j <= i;j++) { printf("*");}printf("\n");}}(5)写一个函数计算一个字符串的长度,再写一个测试函数测试其功能。
不允许使用strlen函数答:#include "stdio.h"void convert(char *str){for (int i = 0; str[i] != '\0'; i++) {if (str[i] >= 'A' && str[i] <= 'Z') {str[i] = str[i] - 'A' + 'a';}}}int main(){char str[20] = "aZcdABxDEF123";convert(str);printf("%s\n", str);return 0;}(6)从键盘上任意输入50个整数存放在a数组中,找出a数组中所有偶数存放在数组b 中,并对b数组的值按降序排列。
大一c语言考试题及答案解析1. 以下哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. variable-nameD. variable$name答案:B解析:在C语言中,变量名必须以字母或下划线开头,后面可以跟字母、数字或下划线。
选项A以数字开头,选项C和D包含非法字符(-和$),因此选项B是唯一合法的变量名。
2. C语言中,哪个关键字用于定义一个函数?A. classB. functionC. defD. void答案:D解析:在C语言中,定义函数的关键字是`void`,通常与`return`关键字一起使用来指定函数的返回类型。
例如,`void functionName()`定义了一个没有返回值的函数。
选项A和B不是C语言中的关键字,选项C是Python中的关键字。
3. 以下哪个选项是C语言中正确的注释方式?A. // This is a single line commentB. /* This is a single line comment */C. <!-- This is a single line comment -->D. Both A and B答案:D解析:在C语言中,单行注释可以使用`//`,而多行注释则使用`/*`开始和`*/`结束。
因此,选项A和B都是正确的注释方式,选项C是HTML中的注释方式,不适用于C语言。
4. C语言中,哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C解析:在C语言中,`*`运算符用于计算两个数的乘积。
选项A是加法运算符,选项B是减法运算符,选项D是除法运算符。
5. 在C语言中,以下哪个选项是正确的字符串定义方式?A. char str[] = "Hello, World!";B. char str = "Hello, World!";C. char str[] = {'H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!', '\0'};D. Both A and C答案:D解析:在C语言中,字符串可以通过字符数组来定义,可以是直接赋值的字符串字面量(选项A),也可以是字符的列表(选项C),列表的末尾需要添加空字符`\0`来标识字符串的结束。
重庆邮电大学2014-2015学年1学期C语言程序设计试卷(期末)(A卷)(闭卷)参考答案及评分细则(计算机科学与技术、信息安全卓越工程师班)一、基础知识测试题(本大题共15小题,每小题4分,共60分)二、编程题(本大题共3小题,共40分)1 (8分)#include <stdio.h>void main() (1分) { int i,j,k,count=0; (1分) for(i=1;i<=10;i++) (1分)for(j=1;j<=20;j++) (1分){ k=50-i-j; (1分)if(i*10+j*5+k==100) (1分){ count++; printf("10元%d张,5元%d张,1元%d张\n",i,j,k); (1分)}}printf("总共有%d种方案\n",count); (1分) }C语言程序设计试卷参考答案及评分细则第1页(共2页)2(12分,自定义函数8分,主函数4分)#include <stdio.h>int BePalindrome(char *str) (1分) { char *p,*q; (1分) p=q=str;while(*q) q++; (1分)q--;while(p<q) (2分){ if(*p!=*q) (1分)return 0;p++; (1分)q--;}return 1; (1分) }void main() (1分) { char a[80]; (1分) printf("Input a string:");gets(a); (1分)if(BePalindrome(a)) (1分)printf("是回文!\n");elseprintf("不是回文!\n");}3(20分)#include <stdio.h>#include <stdlib.h>#define N 30#define M 10typedef struct Player (2分){ int id;char name[10];float score;}PLAYER;void main() (1分){ PLAYER users[N]; (1分)int i,j;float m,s;FILE *fp; (1分)//输入评委打分printf("Please input user's score:\n");for(i=0;i<N;i++) (2分){ printf("Input id and name:"); (1分)scanf("%d%s",&users[i].id,users[i].name);printf("Input %d scores:",M);for(j=0,s=0;j<M;j++) (1分){ scanf("%f",&m);s+=m;}users[i].score=s/M; (1分)}//排序for(i=0;i<N-1;i++) (2分)for(j=i;j<N;j++) (2分)if(users[i].score<users[j].score) (1分){ PLAYER t;t=users[i];users[i]=users[j];users[j]=t;}//输出前三名到文件fp=fopen("result.txt","w"); (1分)if(fp==NULL) (1分){printf("error!\n");exit(0);}for(i=0;i<3;i++) (2分){fprintf(fp,"No.%d:%d %s %.2f\n",i+1,users[i] .id,users[i].name,users[i].score);}fclose(fp); (1分)}C语言程序设计试卷参考答案及评分细则第2页(共2页)C语言程序设计试卷参考答案及评分细则第3页(共2页)。
大学c语言期末考试题库试题及答案在即将到来的大学C语言期末考试中,同学们可能会遇到各种类型的题目。
以下是一些典型的试题及其答案,供同学们复习参考。
1. 以下哪个选项是C语言中的关键字?A. intB. IntegerC. INTD. integer答案:A. int2. 若有定义:int a = 10; 则表达式 a++ 的值是多少?A. 9B. 10C. 11D. 无法确定答案:B. 103. 在C语言中,以下哪个函数用于计算字符串的长度?A. strlen()B. length()C. str_length()D. string_length()答案:A. strlen()4. 若有以下代码片段:```cint x = 5;printf("%d", x++);```执行后输出的结果是?A. 4B. 5C. 6D. 无法确定答案:B. 55. 在C语言中,以下哪个选项表示“逻辑与”操作?A. &&B. ||C. !D. &答案:A. &&6. 若有以下代码:```cint a = 3, b = 4, c;c = a + b;```则变量 c 的值是多少?A. 7B. 3C. 4D. 无法确定答案:A. 77. 在C语言中,以下哪个选项是正确的二维数组声明?A. int array[2,3];B. int array[2][3];C. int array[2][3][4];D. int array[][];答案:B. int array[2][3];8. 若有以下函数定义:```cint add(int x, int y) {return x + y;}```则调用 add(5, 3) 时,返回的值是多少?A. 2B. 5C. 8D. 无法确定答案:C. 89. 在C语言中,以下哪个选项表示“不等于”的比较运算符?A. ==B. !=C. =D. <=答案:B. !=10. 若有以下代码:```cchar str[] = "Hello";str[0] = 'h';```执行后,str 数组的内容是什么?A. "hello"B. "Hello"C. "helloworld"D. "hEllo"答案:A. "hello"这些题目覆盖了C语言的基础知识点,包括关键字、变量、函数、数组以及基本的控制结构。
大学c语言试题题库及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述,正确的是:A. C语言是一种编译型语言B. C语言是一种解释型语言C. C语言是一种面向对象的语言D. C语言不支持函数答案:A2. 在C语言中,用于定义一个整型变量的关键字是:A. intB. floatC. charD. double答案:A3. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. intD. _int答案:B4. C语言中,用于定义一个浮点型数组的语法是:A. int array[10];B. float array[10];C. char array[10];D. double array[10];答案:B5. 在C语言中,哪个运算符用于取模运算?A. %B. /C. *D. +答案:A6. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. ==D. =答案:A7. 在C语言中,用于定义一个字符型数组的语法是:A. int array[10];B. float array[10];C. char array[10];D. double array[10];答案:C8. C语言中,用于声明一个函数的关键字是:A. intB. floatC. voidD. return答案:C9. 下列哪个选项是C语言中的循环结构?A. ifB. switchC. forD. while答案:C10. 在C语言中,用于定义一个字符串常量的语法是:A. "Hello"B. 'Hello'C. "Hello"[10]D. 'Hello'[10]答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用________运算符可以连接两个字符串。
答案:+2. C语言中的________关键字用于声明一个无返回值的函数。
一、基础知识题:(每题4分,共20分) 1、下面程序的输出结果是什么?#include <stdio.h> void main ( ){char a='B',b='0';putchar(a+32); putchar(b); }2、 程序的功能是判断一个年份是否为闰年,请补充程序。
(每空2分) #include <stdio.h> void main() {int year;printf(“please input year:”); scanf( (1) ); if( (2) ){printf(“YES!”); }else{printf(“NO!”); } }重庆邮电大学2008/2009学年第 一 学期非计算机专业(本科)统考题“ C 语言程序设计”期末试题(A 卷)(请将答题写在答题纸上)3、输入的数据是59,则程序的运行结果是什么?若输入82,程序的结果又是什么?(每问2分)#include <stdio.h>void main(){int x;puts(“please input the score:”);scanf(“%d”,&x);switch(x/60){ case 1:switch(x/10){ case 9: puts(“A”);break;case 8: puts(“B”);break;case 7: puts(“C”);break;case 6: puts(“D”);break;}break;case 0: puts(“PASS!”);break;}}4、若从键盘输入35,则程序的输出结果是什么(请注意输出格式!)?(每问2分)#include <stdio.h>void main( ){int k,n=0;printf("k=?");scanf("%d",&k);do {printf("%d",k%10);k/=10;n++;} while(k>0);printf("\n n=%d",n);}5、下面函数的功能是判断n是否为素数, 是返回1,不是返回0,请补充程序。
试题编号:重庆邮电大学2014-2015学年1学期C语言程序设计试卷(期末)(A卷)(闭卷)注意:所有试题的答案必须写在答题纸上。
一、基础知识测试题(本大题共15小题,每小题4分,共60分)1读程序,并回答问题:#include <stdio.h>void main(){ int i,j=8;i=j++; //问题②printf("i=%d\n",i);}问题①:该程序的输出结果是什么?(2分)问题②:如果将i=j++改为i=++j,程序的输出结果又是什么?(2分)2下列程序计算并输出一个三位整数的个位、十位和百位及它们的和,请补充完整。
#include <stdio.h>void main(){ int x=369,b0,b1,b2,sum;b2=x/100;b1= ; //问题①b0= ; //问题②sum=b2+b1+b0;printf("b2=%d,b1=%d,b0=%d,sum=%d\n",b2,b1,b0,sum);}C语言程序设计试卷第1页(共11页)问题①:该处应填入的代码是什么?(2分)问题②:该处应填入的代码是什么?(2分)3 读程序,并回答问题:#include <stdio.h>#define s(a,b) a*b //问题②void main(){ printf("%d",s(3+7,2+3));}问题①:该程序的输出结果是什么?(2分)问题②:将宏定义改为#define s(a,b) ((a)*(b)),输出结果又是什么?(2分)4 读程序,并回答问题:#include <stdio.h>void main(){ int j=4,n=15;switch(j/2) //问题②{ case 0:n++;break;case 1:++n;case 2:n++;case 3:n--;}printf("n=%d\n",n);}问题①:该程序的输出结果是什么?(2分)问题②:如果将j/2改成j%2,程序的输出结果又是什么?(2分)5 下列程序实现输入n值,计算并输出 1! + 2! + 3! + … + n!,请补充完整。
重庆大学c语言期末试题及答案一、选择题(每题2分,共20分)1. 下列选项中,哪个是C语言的关键字?A. intB. floatC. doubleD. all of the above答案:D2. 在C语言中,用于定义一个结构体的关键字是?A. structB. unionC. enumD. class答案:A3. 下列哪个运算符用于将一个浮点数转换为整数?A. %B. /C. +D. -答案:A4. 在C语言中,用于定义一个函数的关键字是?A. defineB. functionC. intD. void答案:C5. 下列哪个选项不是C语言中的控制语句?A. ifB. switchC. whileD. for答案:B二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量的正确语法是____。
答案:int2. 用于在C语言中声明一个数组的关键字是____。
答案:array3. 在C语言中,____运算符用于比较两个值是否相等。
答案:==4. 在C语言中,____函数用于将字符串连接到另一个字符串的末尾。
答案:strcat5. 在C语言中,____函数用于将一个字符串复制到另一个字符串。
答案:strcpy三、编程题(每题10分,共60分)1. 编写一个C语言程序,计算并输出100以内所有偶数的和。
答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("Sum of even numbers from 1 to 100 is: %d\n", sum); return 0;}```2. 编写一个C语言程序,实现字符串反转。
答案:```c#include <stdio.h>#include <string.h>void reverseString(char* str) {int length = strlen(str);for (int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverseString(str);printf("Reversed string: %s\n", str);return 0;}```3. 编写一个C语言程序,计算并输出100以内所有奇数的乘积。
欢迎共阅电大C语言试题及答案一、第一章单选题1.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为。
答案:A2.C++语言中的每条基本语句以________作为结束符。
答案:;(或分号)3.C++语言中的每条复合语句以________作为结束符。
答案:(或右花括号)4.在C++每个程序行的后面或单独一行的开始使用注释的标记符为__________。
答案://5.单行或多行注释的开始标记符为__________、结束标记符为__________。
答案:/*、*/6.在一个C++程序文件中,若要包含另外一个头文件或程序文件,则2.设x和y均为bool量,则x || y为假的条件是。
CA. 它们均为真B. 其中一个为真C. 它们均为假D. 其中一个为假3.设有语句“int a 12; a+ a*a;”,则执行结束后,a的值为。
CA. 12B. 144C. 156D. 2884.x 0 && x 10的相反表达式为()。
AA. x 0 || x 10B. x 0 && x 10C. x 0 || x 10D. x 0 && x 105.x 0 || y 5的相反表达式为()。
BC. 0~19D. 0~20四、第二章填空题1.十进制数25表示成符合C++语言规则的八进制数为________。
答案:0312.十进制数25表示成符合C++语言规则的十六进制数为________。
答案:0x193.在c++语言中,操纵符________表示输出一个换行符。
答案:endl4.执行“cout char 'A'+2 endl;”语句后得到的输出结果为________。
答案:C5.已知'A'~'Z'的ASCII码为65~90,当执行“int x 'C'+5;”语句后x的值为________。
答案:72__________。
大学c语言考试题及答案C语言是计算机科学与技术专业学生必须掌握的一门编程语言,其考试通常包括理论知识和编程实践两个部分。
以下是一套模拟的大学C语言考试题及答案,供同学们参考。
# 大学C语言考试题及答案一、选择题(每题2分,共20分)1. 下列哪个是C语言的标准输入输出库?- A. `<stdio.h>- B. `<stdlib.h>`- C. `<math.h>`- D. `<string.h>`答案:A2. C语言中,以下哪个是正确的字符串定义方式?- A. `char str[] = "Hello";`- B. `char str = "Hello";`- C. `int str = "Hello";`- D. `float str = "Hello";`答案:A3. 在C语言中,`printf`函数属于哪个库?- A. `math.h`- B. `stdio.h`- C. `stdlib.h`- D. `string.h`答案:B4. 以下哪个是C语言的关键字?- A. `function`- B. `class`- C. `int`- D. `namespace`答案:C5. C语言中,以下哪个语句用于定义一个变量?- A. `int var;`- B. `var int;`- C. `int = var;`- D. `var = int;`答案:A...(此处省略其他选择题)二、填空题(每空2分,共20分)1. 在C语言中,一个完整的程序至少包含一个______函数。
答案:main2. 用于计算两个数的乘积的运算符是______。
答案:*3. C语言中,用于定义数组的关键字是______。
答案:array 或者不填(取决于具体要求)4. 语句 `for(int i = 0; i < 10; i++)` 循环执行的次数是______。
大学c语言基本考试题及答案# 大学C语言基本考试题及答案一、选择题1. C语言中,用于定义一个结构体的关键字是()。
A. `int`B. `struct`C. `double`D. `char`答案:B2. 在C语言中,哪个函数用于计算并返回字符串的长度?A. `strlen()`B. `strcpy()`C. `strcat()`D. `strrev()`答案:A3. 如果`int a = 10;`,表达式 `a++` 的值是多少?A. 9B. 10C. 11D. 12答案:B二、填空题1. C语言中,用于执行条件判断的语句是 __________。
答案:if2. 当需要频繁修改数组中的元素时,应使用 __________ 数组,因为它的元素在内存中是连续存储的。
答案:一维3. 在C语言中,函数的返回值通过 __________ 关键字来指定。
答案:return三、简答题1. 简述C语言中指针和数组的区别。
答案:指针是一个变量,它存储了另一个变量的内存地址。
数组是相同数据类型的元素的集合,它在内存中是连续存储的。
指针可以被重新赋值为其他地址,而数组的大小和地址在定义后是固定的。
2. 描述C语言中函数的定义和调用过程。
答案:函数定义包括返回类型、函数名、参数类型和数量以及函数体。
调用函数时,程序会跳转到函数定义的代码块执行,完成所需的操作后,通过return语句返回到调用点继续执行。
四、编程题1. 编写一个C语言程序,实现对两个整数进行交换的功能。
```c#include <stdio.h>void swap(int *x, int *y) {int temp = *x;*x = *y;*y = temp;}int main() {int a, b;printf("Enter two numbers: ");scanf("%d %d", &a, &b);printf("Before swap: a = %d, b = %d\n", a, b); swap(&a, &b);printf("After swap: a = %d, b = %d\n", a, b);return 0;}```2. 编写一个C语言程序,计算并输出斐波那契数列的前10项。
大一c语言考试题及答案解析一、选择题1. 下列关于C语言的描述中,错误的是()。
A. C语言是一种高级编程语言B. C语言可以用于系统编程C. C语言不支持面向对象编程D. C语言的源代码文件扩展名是.cpp答案:D解析:C语言的源代码文件扩展名是.c,而不是.cpp,后者是C++的源代码文件扩展名。
2. 在C语言中,以下哪个关键字用于定义一个函数?()A. returnB. functionC. defineD. void答案:D解析:在C语言中,void是用于定义函数的关键字,例如:void functionName()。
二、填空题1. 在C语言中,用于声明一个整型变量的关键字是______。
答案:int2. 若定义一个变量x,其值为10,正确的声明语句是______。
答案:int x = 10;三、简答题1. 请简述C语言中数组和指针的区别。
答案:数组是一个数据结构,用于存储相同类型的多个元素,而指针是一个变量,它存储了另一个变量的内存地址。
数组名本身代表数组的首地址,而指针变量可以被赋值为任意地址。
2. 请解释C语言中结构体的作用。
答案:结构体是一种用户自定义的数据类型,它允许将不同的数据类型组合成一个单一的数据结构,从而可以创建复杂的数据结构来表示复杂的数据。
四、编程题1. 编写一个C语言程序,计算并输出1到100之间所有奇数的和。
答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 != 0) {sum += i;}}printf("The sum of odd numbers from 1 to 100 is: %d\n", sum);return 0;}```解析:程序使用for循环遍历1到100的整数,通过if语句检查每个数是否为奇数,如果是,则将其加到sum变量中。
c语言考试题及答案以及解析一、选择题1. 下列哪个选项是C语言中的关键字?A. intB. floatC. doubleD. string答案:A解析:在C语言中,关键字是保留的词汇,用于表示特定的语法结构。
int是C语言中用于声明整型变量的关键字。
2. C语言中,哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C解析:在C语言中,乘法运算符是星号(*),用于计算两个数的乘积。
二、填空题1. 在C语言中,以下代码片段的输出结果是:```cint main() {int a = 5;printf("%d", a);return 0;}```输出结果为:_________答案:5解析:代码中的printf函数用于输出变量a的值,a被初始化为5,因此输出结果为5。
2. 下列代码段中,变量b的值是多少?```cint main() {int a = 10, b;b = a + 5;printf("%d", b);return 0;}```变量b的值为:_________答案:15解析:变量b被赋值为变量a加上5,由于a的值为10,所以b的值为15。
三、简答题1. 简述C语言中的数组是什么,并给出一个数组的声明和初始化的例子。
答案:C语言中的数组是一种数据结构,用于存储相同类型的多个元素。
数组的声明需要指定元素的类型和数组的长度。
数组的初始化可以在声明时完成。
解析:例如,声明一个整型数组并初始化:```cint numbers[5] = {1, 2, 3, 4, 5};```2. 解释C语言中的函数是什么,并给出一个简单函数的定义和调用的例子。
答案:C语言中的函数是一段具有特定功能的代码块,可以接收参数,并返回一个值。
函数的定义包括函数的返回类型、名称、参数列表和函数体。
函数的调用是使用函数名称和必要的参数来执行函数。
解析:例如,定义一个函数来计算两个数的和,并调用它:```cint add(int x, int y) {return x + y;}int main() {int result = add(5, 10);printf("%d", result);return 0;}```四、编程题1. 编写一个C语言程序,实现输入两个整数,输出它们的和。
大学c语言试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个函数?A. structB. intC. floatD. void答案:B2. 在C语言中,以下哪个不是合法的标识符?A. _2mainB. mainC. 2mainD. main_答案:C3. 以下哪个选项不是C语言的基本数据类型?A. intB. charC. doubleD. string答案:D4. 在C语言中,哪个运算符用于计算两个整数的平均值?A. /B. +C. %D. /答案:D5. 以下哪个语句用于输入数据?A. scanf()B. printf()C. coutD. cin答案:A二、填空题(每题2分,共10分)1. 在C语言中,`printf("%d", x);` 用于输出变量x的________。
答案:整数值2. 如果要定义一个字符数组,可以使用关键字________。
答案:char3. C语言中,`for`循环的一般形式是:`for(________;________;________)`。
答案:初始化表达式;条件表达式;迭代表达式4. 在C语言中,`switch`语句中`case`后面跟的是________。
答案:常量表达式5. 使用`break`语句可以________`switch`或`for`循环。
答案:退出三、简答题(每题5分,共15分)1. 简述C语言中数组和指针的区别。
答案:数组是一种数据结构,可以存储相同类型的多个元素,而指针是一个变量,它存储的是另一个变量的内存地址。
数组名可以作为指针使用,但数组本身不是一个指针。
2. 解释C语言中的递归函数,并给出一个简单的例子。
答案:递归函数是在其定义中调用自身的函数。
例如,计算阶乘的函数可以递归地定义为:```cint factorial(int n) {if (n == 0) return 1;return n * factorial(n - 1);}```3. 描述C语言中结构体的定义和使用。
c语言大学考试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言中变量的描述,错误的是:A. 变量必须先定义后使用B. 变量的类型必须明确C. 变量的值在程序运行过程中可以改变D. 变量的名称可以随意命名答案:D2. C语言中,用于定义一个整型变量的关键字是:A. intB. floatC. doubleD. char答案:A3. 下列哪个选项不是C语言中的控制结构?A. 顺序结构B. 选择结构C. 循环结构D. 递归结构答案:D4. 在C语言中,以下哪个运算符用于取模?A. %B. /C. *D. -答案:A5. 以下哪个函数用于将字符串复制到另一个字符串?A. strcat()B. strcpy()C. strcmp()D. strlen()答案:B6. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. returnD. function答案:B7. C语言中,以下哪个选项不是数组的初始化方式?A. 直接初始化B. 静态初始化C. 动态初始化D. 间接初始化答案:C8. 在C语言中,以下哪个选项是正确的注释方式?A. // 这是注释B. /* 这是注释 */C. //* 这是注释 */D. /* 这是注释答案:B9. 在C语言中,以下哪个选项不是指针的概念?A. 地址B. 变量C. 值D. 引用答案:B10. C语言中,以下哪个选项是正确的文件操作函数?A. fopen()B. fclose()C. fgetc()D. 所有选项答案:D二、填空题(每题2分,共20分)1. 在C语言中,定义一个字符型变量的正确格式是:______。
答案:char ch;2. C语言中,用于输入的函数是:______。
答案:scanf();3. C语言中,用于输出的函数是:______。
答案:printf();4. 在C语言中,表示逻辑“与”的运算符是:______。
答案:&&5. C语言中,表示逻辑“或”的运算符是:______。
C语言习题答案第1章1.选择题(1) C (2) B (3) A2.填空题(1)main (2) main (3) 有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性(4) 顺序、分支和循环(5) 自顶向下,逐步细化、模块化设计、结构化编码第2章1.选择题12 345 6 7 890 1234 5ACCDA D C ABA BBDDB2、填空题(1) 数字、字母、下划线(2)0 (3) 4、8 (4) (a+b)*c/(a-b) (5) -60 (6)-16 (7)9 (8)6、4、2 (9)0 (10)10、6 (11)5.500000 (12)12、4 (13)0 (14)16 (15)6.63、编程题(1)编写一个程序求各种类型数据的存储长度。
#include <stdio.h>main(){printf("int:%d byte\n",sizeof(int));printf("short int:%d byte\n",sizeof(short int));printf("long int:%d byte\n",sizeof(long int));printf("float:%d byte\n",sizeof(float));printf("double:%d byte\n",sizeof(double));printf("long double:%d byte\n",sizeof(long double));printf("char:%d byte\n",sizeof(char));}(2)#include <stdio.h>#define RAT 1.60934main(){float k;printf("input the km:");scanf("%f",&k);printf("mile:%f\n",k/RAT);}第3章1.选择题12 345 67 890(1) ~(10):DDCDD DCDCC2.解析题(1) x=170,x=ㄩㄩㄩ170,x=ㄩㄩㄩ252,x=ㄩㄩㄩㄩaa,x=ㄩㄩㄩ170x=170,x=170ㄩㄩㄩ,x=ㄩㄩㄩ170,x=%6da=513.789185,a=ㄩㄩ513.79,a=513.78918457,a=513.78918457 (2) a=3ㄩb=7x=8.5ㄩy=71.82c1=Aㄩc2=a3.编程题(1)main(){int x,y;scanf("%d%d",&x,&y);printf("商数=%d,余数=%d",x/y,x%y);}(2)main(){double x,y,z,avg;scanf("%lf%lf%lf",&x,&y,&z);avg=(x+y+z)/3;printf("%.1f",avg);}第4章1.选择题(1)~(10)CCAAD CCABD2.填空题(1)①a>0&&b>0||a>0&&c>0||b>0&&c>0②a<b||a<c③a>5||-a>5④(a<=0)&&((int)a)!=a⑤(a%b)!=0(2)①!(x>0) ②1 ③!(x>=0&&x<=5)(3)3、2、2(4) ch>='A'&&ch<='Z' ch=ch-32(5) x<=10&&x>2 x<=2&&x>-1 y=-1 ;(6) a+b>c&&a+c>b&&b+c>a a==b&&a==c a==b||a==c||b==c(7) x<0 c=x/10 y!=-23.编程题(1)#include <stdio.h>main(){int x;printf("please input a number:");scanf("%d",&x);if(x%2==0) printf("x is a even number");else printf("x is a odd number");}(2)#include <stdio.h>main(){int x,y;printf("please input a number:");scanf("%d",&x);if(x>-5 && x<0) { y=x; printf("%d",y); }else if(x==0) { y=x-1; printf("%d",y); }else if(x>0 && x<10) { y=x+1; printf("%d",y); }else printf("the number is error");}(3)#include <stdio.h>main(){ int a,m;printf("please input a number:");scanf("%d",&a);switch(a/10){ case 0:case 1:case 2:m=1;break;case 3:m=2;break;case 4:m=3;break;case 5:m=4;break;default:m=5;break;}printf("%d",m);}(4)#include <stdio.h>main(){float price,tax;printf("please input the price of product:");scanf("%f",&price);if(price>=10000) tax=price*0.05;else if(price>=5000) tax=price*0.03;else if(price>=1000) tax=price*0.02;else tax=0;printf("%f",tax);}(5)#include <stdio.h>main(){float score;printf("please input the score of student:");scanf("%f",&score);if(score>=85) printf("VERY GOOD");else if(score>=60) printf("GOOD");else printf("BAD");}(6)#include <stdio.h>main (){int x,y,z;printf("input two number:");scanf("%d%d",&x,&y);if(x<10 || x>99 || y<10 || y>99)printf("input data error!\n");else{ z=(x/10)*1000+(y/10)*100+(x%10)*10+y%10;printf("%d\n",z);}}第5章1.选择题(1)d (2) c (3)a (4)d (5)a (6)d (7)d (8)b (9)d (10)b (11)c (12)a(13)d (14)d(15)c2.填空题(1) fahr celsius=5.0/9*(fahr-32) fahr+=step (2) 5、4、6 (3) 3*i-2 (4) y-- z*=x (5) 8ㄩ5ㄩ2 (6) j++ i%j==0 j>=i(或j==i) (7)sum<k sum==k j-2 (8) s=0 p=1 j<=i3.改错题(1) 第一处改正:For改为for第二处改正:for(k=1;k<=4;k++)或for(k=0;k<4;k++)第三处改正:ave=sum/4改为ave=sum/4.0(2) 第一处改正:j<=9第二处改正:m=100*i+10*j+k(3) 第一处改正:temp=1第二处改正:temp >=eps第三处改正:r*2(4) 第一处改正:&n第二处改正:== ==(5) 第一处改正:t=m/10改为t=m%10第二处改正:t=0改为t==0第三处改正:m=m%10改为m=/104.编程题(1) 分式累加和。
2009-07-13 19:19《C语言程序设计》第三版课后答案1.5请参照本章例题,编写一个C程序,输出以下信息:************Very Goodj!************解:main(){printf(" ************ \n");printf("\n");printf(" Very Good! \n");printf("\n");printf(" ************\n");}1.6编写一个程序,输入a b c三个值,输出其中最大者。
解:main(){int a,b,c,max;printf("请输入三个数a,b,c:\n");scanf("%d,%d,%d",&a,&b,&c);max=a;if(max<b)max=b;if(max<c)max=c;printf("最大数为:%d",max);}第三章3.3 请将下面各数用八进制数和十六进制数表示:(1)10 (2)32 (3)75 (4)-617(5)-111 (6)2483 (7)-28654 (8)21003解:十八十六(10)=(12)=(a)(32)=(40)=20(75)=(113)=4b(-617)=(176627)=fd97-111=177621=ff912483=4663=963-28654=110022=901221003=51013=520b3.5字符常量与字符串常量有什么区别?解:字符常量是一个字符,用单引号括起来。
字符串常量是由0个或若干个字符而成,用双引号把它们括起来,存储时自动在字符串最后加一个结束符号'\0'.3.6写出以下程序的运行结果:#include<stdio.h>void main(){char c1='a',c2='b',c3='c',c4='\101',c5='\116';printf("a%c b%c\tc%c\tabc\n",c1,c2,c3);printf("\t\b%c %c\n",c4,c5);解:程序的运行结果为:aabb cc abcA N3.7将"China"译成密码.密码规律:用原来的字母后面第4个字母代替原来的字母,例如,字母"A"后面第4个字母是"E",用"E"代替"A".因此,"China"应译为"Glmre".请编一程序,用赋初值的议程使c1,c2,c3,c4,c5分别变成'G','1','m','r','e',并输出.main(){char c1="C",c2="h",c3="i",c4='n',c5='a';c1+=4;c2+=4;c3+=4;c4+=4;c5+=4;printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5);}3.8例3.6能否改成如下:#include<stdio.h>void main(){int c1,c2;(原为 char c1,c2)c1=97;c2=98;printf("%c%c\n",c1,c2);printf("%d%d\n",c1,c2);}解:可以.因为在可输出的字符范围内,用整型和字符型作用相同.3.9求下面算术表达式的值.(1)x+a%3*(int)(x+y)%2/4=2.5(x=2.5,a=7,y=4.7)(2)(float)(a+b)/2+(int)x%(int)y=3.5(设a=2,b=3,x=3.5,y=2.5)3.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,11,9,10第4章4.4.a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1='a',c2='b'.想得到以下的输出格式和结果,请写出程序要求输出的结果如下:a= 3 b= 4 c= 5x=1.200000,y=2.400000,z=-3.600000x+y= 3.60 y+z=-1.20 z+x=-2.40u= 51274 n= 128765c1='a' or 97(ASCII)c2='B' or 98(ASCII)解:main(){int a,b,c;long int u,n;float x,y,z;char c1,c2;a=3;b=4;c=5;x=1.2;y=2.4;z=-3.6;u=51274;n=128765;c1='a';c2='b';printf("\n");printf("a=%2d b=%2d c=%2d\n",a,b,c);printf("x=%8.6f,y=%8.6f,z=%9.6f\n",x,y,z);printf("x+y=%5.2f y=z=%5.2f z+x=%5.2f\n",x+y,y+z,z+x);printf("u=%6ld n=%9ld\n",u,n);printf("c1='%c' or %d(ASCII)\n",c1,c2);printf("c2='%c' or %d(ASCII)\n",c2,c2);}4.5请写出下面程序的输出结果.结果:575 767.856400,-789.12396267.856400 ,-789.12396267.86,-789.12,67.856400,-789.123962,67.856400,-789.1239626.785640e+001,-7.89e+002A,65,101,411234567,4553207,d68765535,17777,ffff,-1COMPUTER, COM4.6用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1='A',c2='a',问在键盘上如何输入?main(){int a,b;float x,y;char c1,c2;scanf("a=%d b=%d,&a,&b);scanf(" x=%f y=%e",&x,&y);scanf(" c1=%c c2=%c",&c1,&c2);}解:可按如下方式在键盘上输入:a=3 b=7x=8.5 y=71.82c1=A c2=a说明:在边疆使用一个或多个scnaf函数时,第一个输入行末尾输入的"回车"被第二个scanf函数吸收,因此在第二\三个scanf函数的双引号后设一个空格以抵消上行入的"回车".如果没有这个空格,按上面输入数据会出错,读者目前对此只留有一初步概念即可,以后再进一步深入理解.4.7用下面的scanf函数输入数据使a=10,b=20,c1='A',c2='a',x=1.5,y=-3.75,z=57.8,请问在键盘上如何输入数据?scanf("%5d%5d%c%c%f%f%*f %f",&a,&b,&c1,&c2,&y,&z);解:main(){int a,b;float x,y,z;char c1,c2;scanf("%5d%5d%c%c%f%f",&a,&b,&c1,&c2,&x,&y,&z);}运行时输入:10 20Aa1.5 -3.75 +1.5,67.8注解:按%5d格式的要求输入a与b时,要先键入三个空格,而后再打入10与20。
%*f是用来禁止赋值的。
在输入时,对应于%*f的地方,随意打入了一个数1.5,该值不会赋给任何变量。
3.8设圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积,用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后两位数字.请编程.解:main(){float pi,h,r,l,s,sq,vq,vz;pi=3.1415926;printf("请输入圆半径r圆柱高h:\n");scanf("%f,%f",&r,&h);l=2*pi*r;s=r*r*pi;sq=4*pi*r*r;vq=4.0/3.0*pi*r*r*r;vz=pi*r*r*h;printf("圆周长为: =%6.2f\n",l);printf("圆面积为: =%6.2f\n",s);printf("圆球表面积为: =%6.2f\n",sq);printf("圆球体积为: =%6.2f\n",vz);}4.9输入一个华氏温度,要求输出摄氏温度,公式为C=5/9(F-32),输出要有文字说明,取两位小数.解: main(){float c,f;printf("请输入一个华氏温度:\n");scanf("%f",&f);c=(5.0/9.0)*(f-32);printf("摄氏温度为:%5.2f\n",c);}第五章逻辑运算和判断选取结构5.4有三个整数a,b,c,由键盘输入,输出其中最大的数.main(){int a,b,c;printf("请输入三个数:");scanf("%d,%d,%d",&a,&b,&c);if(a<b)if(b<c)printf("max=%d\n",c);elseprintf("max=%d\n",b);else if(a<c)printf("max=%d\n",c);elseprintf("max-%d\n",a);}方法2:使用条件表达式.main(){int a,b,c,termp,max;printf(" 请输入 A,B,C: ");scanf("%d,%d,%d",&a,&b,&c);printf("A=%d,B=%d,C=%d\n",a,b,c);temp=(a>b)?a:b;max=(temp>c)? temp:c;printf(" A,B,C中最大数是%d,",max);}5.5 main(){int x,y;printf("输入x:");scanf("%d",&x);if(x<1){y=x;printf("X-%d,Y=X=%d \n",x,y);}else if(x<10){y=2*x-1;printf(" X=%d, Y=2*X-1=%d\n",x,y);}else{y=3*x-11;printf("X=5d, Y=3*x-11=%d \n",x,y);}}5.7给一个不多于5位的正整数,要求:1.求它是几位数2.分别打印出每一位数字3.按逆序打印出各位数字.例如原数为321,应输出123.main(){long int num;int indiv,ten,hundred,housand,tenthousand,place;printf("请输入一个整数(0-99999):");scanf("%ld",&num);if(num>9999)place=5;else if(num>999)place=4;else if(num>99)place=3;else if(num>9)place=2;else place=1;printf("place=%d\n",place);printf("每位数字为:");ten_thousand=num/10000;thousand=(num-tenthousand*10000)/1000;hundred=(num-tenthousand*10000-thousand*1000)/100;ten=(num-tenthousand*10000-thousand*1000-hundred*100)/10;indiv=num-tenthousand*10000-thousand*1000-hundred*100-ten*10; switch(place){case5:printf("%d,%d,%d,%d,%d",tenthousand,thousand,hundred,ten,indiv);printf("\n反序数字为:");printf("%d%d%d%d%d\n",indiv,ten,hundred,thousand,tenthousand); break;case 4:printf("%d,%d,%d,%d",thousand,hundred,ten,indiv);printf("\n反序数字为:");printf("%d%d%d%d\n",indiv,ten,hundred,thousand);break;case 3:printf("%d,%d,%d\n",hundred,ten,indiv);printf("\n反序数字为:");printf("%d%d%d\n",indiv,ten,hundred);case 2:printf("%d,%d\n",ten,indiv);printf("\n反序数字为:");printf("%d%d\n",indiv,ten);case 1:printf("%d\n",indiv);printf("\n反序数字为:");printf("%d\n",indiv);}}5.8 1.if语句main(){long i;float bonus,bon1,bon2,bon4,bon6,bon10;/*初始化变量*/bon1=100000*0.1;bon2=100000*0.075+bon1;bon4=200000*0.05+bon2;bon6=200000*0.03+bon4;bon10=400000*0.015+bon6;printf("请输入利润");scanf("%ld",&i);/*计算*/if(i<=le5)bonus=i*0.1;else if(i<2e5)bonus=bon1+(1-100000)*0.075;else if(i<=4e5)bonus=bon2+(i-200000)*0.05;else if(i<=6e5)bonus=bon4+(i-400000)*0.03;else if(i<=le6)bonus=bon6+(i-600000)*0.015;elsebonus=bon10+(i-1000000)*0.01;printf("奖金是 %10.2f",bonus);}用switch语句编程序main(){long i;float bonus,bon1,bon2,bon4,bon6,bon10;int branch;/*初始化变量*/bon1=100000*0.1;bon2=bon1+100000*0.075bon4=bon2+200000*0.05;bon6=bon4+200000*0.03;bon10=bon6+400000*0.015;printf("请输入利润:");scanf("%ld",&i);branch=i/100000;if(branch>10)branch=10;/*计算*/switch(branch){case 0:bonus=i*0.1;break;case 1:bonus=bon1+(i-100000)*0.075;break; case 2:case 3:bonus=bon2+(i-200000)*0.05;break; case 4:case 5:bonus=bon4+(i-400000)*0.03;break;case 6:case 7:case 8:case 9:bonus=bon6+(i-600000)*0.015;break;case 10:bonus=bon10+(i-1000000)*0.01;}printf(" 奖金是 %10.2f",bonus);}5.9 输入四个整数,按大小顺序输出.main(){int t,a,b,c,d;printf("请输入四个数:");scanf("%d,%d,%d,%d",&a,&b,&c,&d);printf("\n\n a=%d,b=%d,c=%d,d=%d \n",a,b,c,d); if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(a>d){t=a;a=d;d=t;}if(b>c){t=b;b=c;c=t;}if(b>d){t=b;b=d;d=t;}if(c>d){t=c;c=d;d=t;}printf("\n 排序结果如下: \n");printf(" %d %d %d %d \n",a,b,c,d);}5.10塔main(){int h=10;float x,y,x0=2,y0=2,d1,d2,d3,d4;printf("请输入一个点(x,y):");scanf("%f,%f",&x,&y);d1=(x-x0)*(x-x0)+(y-y0)(y-y0);d2=(x-x0)*(x-x0)+(y+y0)(y+y0);d3=(x+x0)*(x+x0)+(y-y0)*(y-y0);d4=(x+x0)*(x+x0)+(y+y0)*(y+y0);if(d1>1 && d2>1 && d3>1 && d4>1)h=0;printf("该点高度为%d",h);}第六章循环语句6.1输入两个正数,求最大公约数最小公倍数.main(){int a,b,num1,num2,temp;printf("请输入两个正整数:\n");scanf("%d,%d",&num1,&num2);if(num1<num2){temp=num1;num1=num2;num2=temp;}a=num1,b=num2;while(b!=0){temp=a%b;a=b;b=temp;}printf("它们的最大公约数为:%d\n",a);printf("它们的最小公倍数为:%d\n",num1*num2/2);}6.2输入一行字符,分别统计出其中英文字母,空格,数字和其它字符的个数. 解:#include <stdio.h>main(){char c;int letters=0,space=0,degit=0,other=0;printf("请输入一行字符:\n");while((c=getchar())!='\n'){if(c>='a'&&c<='z'||c>'A'&&c<='Z')letters++;else if(c==' ')space++;else if(c>='0'&&c<='9')digit++;elseother++;printf("其中:字母数=%d 空格数=%d 数字数=%d 其它字符数=%d\n",letters,space,digit,other);}6.3求s(n)=a+aa+aaa+…+aa…a之值,其中工是一个数字. 解:main(){int a,n,count=1,sn=0,tn=0;printf("请输入a和n的值:\n");scanf("%d,%d",&a,&n);printf("a=%d n=%d \n",a,n);while(count<=n){tn=tn+a;sn=sn+tn;a=a*10;++count;}printf("a+aa+aaa+…=%d\n",sn);}6.4 求1+2!+3!+4!+…+20!.main(){float n,s=0,t=1;for(n=1;n<=20;n++){t=t*n;s=s+t;}printf("1!+2!+…+20!=%e\n",s);}6.5 main(){int N1=100,N2=50,N3=10;float k;float s1=0,s2=0,s3=0;for(k=1;k<=N1;k++)/*计算1到100的和*/{s1=s1+k;}for(k=1;k<=N2;k++)/*计算1到50各数平方和*/s2=s2+k*k;}for(k=1;k<=N3;k++){s3=s3+1/k;}printf("总和=%8.2f\n",s1+s2+s3);}6.6水仙开花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(i*100+j*10+k==i*i*i+j*j*j+k*k*k) {printf("%d",n);}}printf("\n");}6.7完数main()#include M 1000/*定义寻找范围*/ main(){int k0,k1,k2,k3,k4,k5,k6,k7,k8,k9; int i,j,n,s;for(j=2;j<=M;j++){n=0;s=j;for(i=1;i<j;i++){if((j%i)==0){if((j%i)==0){n++;s=s-i;switch(n)/*将每个因子赋给k0,k1…k9*/{case 1:k0=i;break;case 2:k1=i;break;case 3:k2=i;break;case 4:k3=i;break;case 5:k4=i;break;case 6:k5=i;break;case 7:k6=i;break;case 8:k7=i;break;case 9:k8=i;break;case 10:k9=i;break;}}}if(s==0){printf("%d是一个‘完数’,它的因子是",j); if(n>1)printf("%d,%d",k0,k1);if(n>2)printf(",%d",k2);if(n>3)printf(",%d",k3);if(n>4)printf(",%d",k4);if(n>5)printf(",%d",k5);if(n>6)printf(",%d",k6);if(n>7)printf(",%d",k7);if(n>8)printf(",%d",k8);if(n>9)printf(",%d",k9);printf("\n");}}方法二:此题用数组方法更为简单.main(){static int k[10];int i,j,n,s;for(j=2;j<=1000;j++){n=-1;s=j;for(i=1;i<j;i++){if((j%i)==0){n++;s=s-i;k[n]=i;/*将每个因子赋给k0,k1...k9*/ }}if(s==0){printf("%d是一个完数,它的因子是:",j); for(i=0;i<n;i++)printf("%d,",k[i]);printf("%d\n",k[n]);}}5.8 有一个分数序列:2/1,3/2,5/3,8/5……求出这个数列的前20项之和. 解: main(){int n,t,number=20;float a=2,b=1,s=0;for(n=1;n<=number;n++){s=s+a/b;t=a,a=a+b,b=t;}printf("总和=%9.6f\n",s);}6.9球反弹问题main(){float sn=100.0,hn=sn/2;int n;for(n=2;n<=10;n++){sn=sn+2*hn;/*第n次落地时共经过的米数*/hn=hn/2;/*第n次反跳高度*/}printf("第10次落地时共经过%f米 \n",sn);printf("第10次反弹%f米.\n",hn);}6.10猴子吃桃main(){int day,x1,x2;day=9;x2=1;while(day>0){x1=(x2+1)*2;x2=x1;day--;}printf("桃子总数=%d\n",x1);}6.14打印图案main(){int i,j,k;for(i=0;i<=3;i++){for(j=0;j<=2-1;j++)printf(" ");for(k=0;k<=2*i;k++)printf("*");printf("\n");}for(i=0;i<=2;i++){for(j=0;j<=i;j++)printf(" ");for(k=0;k<=4-2*i;k++)printf("*");printf("\n");}6.15乒乓比赛main(){char i,j,k;/*i是a是对手;j是b是对手;k是c的对手*/ for(i='x';i<='z';i++)for(j='x';j<='z';j++){if(i!=j)for(k='x';k<='z';k++){if(i!=k&&j!=k){if(i!='x' && k!='x' && k! ='z')printf("顺序为:\na-%c\tb--%c\tc--%c\n",i,j,k);}}}}7.1用筛选法求100之内的素数./*用筛选法求100之内的素数*/#include<math.h>#define N 101main(){int i,j,line,a[N];for(i=2;i<N;i++) a[i]=i;for(i=2;i<sqrl(N);i++)for(j=i+1;j<N;j++){if(a[i]!=0 && a[j]!=0)if(a[j]%a[i]==0)a[j]=0;printf("\n");for(i=2,line=0;i<N;i++){ if(a[i]!=0){printf("%5d",a[i]);line++;if(line==10){printf("\n");line=0;}}}7.2用选择法对10个数排序./*选择法排序.*/#define N 10main(){ int i,j,min,temp,a[N];/*输入数据*/printf("请输入十个数:\n"); for (i=0;i<N;i++){ printf("a[%d]=",i);scanf("%d",&a[i]);}printf("\n");for(i=0;i<N;i++)printf("%5d",a[i]);printf("\n");/*排序*/for (i=0;i<N-1;i++){ min=i;for(j=i+1;j<N;j++)if(a[min]>a[j]) min=j;temp=a[i];a[i]=a[min];a[min]=temp;}/*输出*/printf("\n排序结果如下:\n"); for(i=0;i<N;i++)printf("%5d",a[i]);}7.3对角线和:/*计算矩阵对角线元素之和*/ main(){float a[3][3],sum=0;int i,j;printf("请输入矩阵元素:\n");for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%f",&a[i][j]);for(i=0;i<3;i++)sum=sum+a[i][i];printf("对角元素之和=6.2f",sum);}7.4插入数据到数组/*插入数据到数组*/main(){int a[11]={1,4,6,9,13,16,19,28,40,100}; int temp1,temp2,number,end,i,j;printf("初始数组如下:");for (i=0;i<10;i++)printf("%5d",a[i]);printf("\n");printf("输入插入数据:");scanf("%d",&number);end=a[9];if(number>end)a[10]=number;else{for(i=0;i<10;i++){ if(a[i]>number){temp1=a[i];a[i]=number;for(j=i+1;j<11;j++){temp2=a[j];a[j]=temp1;temp1=temp2;}break;}}}for(i=0;j<11;i++)printf("a%6d",a[i]);}7.5将一个数组逆序存放。