c语言作业答案
C语言练习作业及参考答案
二、选择题
1、在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为____A___。
A) char<int<long int<=float<double
B) char=int <long int<=float<double
B)C程序的每行中只能写一条语句
C)C语言本身没有输入输出语句
D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误
7、以下叙述不正确的是___D_____。
A)一个C源程序可由一个或多个函数组成
B)一个C源程序必须包含一个main函数
C)C程序的基本组成单位是函数
D)在C程序中,注释说明只能位于一条语句的后面
longd=32768;
float e=4.56;
b=a;
a=c=d;
printf("%d,%u,%u,%ld\n",a,b,c,d);
a=e;
printf("%d,%f\n",a,e);
ห้องสมุดไป่ตู้return 0;
}
本题假设int型数据占两个字节。
(提示:%u表示以无符号整型的格式输出;%ld表示以长整型的格式输出)
8、C语言规定:在一个源程序中,main函数的位置是___A_____。
A)必须在最开始
B)必须在系统调用的库函数的后面
C)可以任意
D)必须在最后
习题
一、程序题
1、阅读程序写运行结果
(1)#include <stdio.h>
int main()
C语言基础知识作业(含解答)
基础知识作业解答(1)一、选择题:1.下面叙述错误的是:a)C程序中,各种括号应成对出现。
b)C程序中,赋值号的左边不可以是表达式。
c)C程序中,变量名的大小是有区别的。
d)C程序中,若未给变量赋初值,则变量的初值自动为0。
答案:d)解答:C程序中,若未给变量赋初值,则变量的初值不一定为0。
按变量被定义的位置来区分,变量可分为局部变量和全局变量;在{ … } 之间定义的变量称为局部变量,编译系统对局部变量是不进行初始化的,即,不赋初值。
未赋初值的局部变量的值为机内随机值。
在{ … } 之外定义的变量称为全局变量,编译系统自动对全局变量进行初始化。
未赋初值的全局部变量的值为0。
2.下面叙述正确的是:a)C程序中的变量定义语句可以写在函数体中任何位置。
b)C程序中不能有空语句。
c)C程序中的变量必须先定义后使用。
d)C程序中所有简单数据类型都可以准确无误的表示。
答案:c)解答:C程序中,变量定义语句的作用是通知编译系统为变量分配存储空间,所以必须先定义后使用。
3.以下合法的用户标识符的是:a)long b)\t c)5a d)user答案:d)解答:C程序中,合法的用户标识符的定义是:以字母或下划线开头的由字母、数字和下划线组成的字符串,不可以使用系统的关键字作为用户的标识符。
常见的关键字有:int, float ,char ,double ,long, short,unsigned,if,switch,case,break, continue ,do ,for ,while ,struct ,union, auto, static, extern, register;标准函数名可以用作用户标识符,但不提倡。
4.C程序中,合法的关键字的是:a)Float b)while c)Int d)Integer答案:b)5.下面选项中,优先级最高的运算符是:a)&& b)/= c) ! d)<=答案:c)6.下面选项中,优先级最低的运算符是:a)!= b) || c)++ d),答案:d)7.C程序中,运算对象必须为整型数据的运算符是a)++ b) % c) / d) *答案:b)8.假设x,y,z为整型变量,且x=2,y=3,z=10,则下列表达式中值为1的是:a)x && y||z b)x>z c) (!x && y)||(y>z) d)x && !z ||!(y && z)答案:a)解答:C程序中,进行逻辑运算时,所有的非0数都处理成逻辑真;0处理成逻辑假。
C语言作业答案
一、思考题1、常量和变量有什么区别?它们分别是如何定义的?常量是指在C程序运行过程中其值不变的量,变量是一个值的存放处,其值在程序运行过程中可以被改变。
常量有两种形式:字面常量与符号常量,C语言可以使用以下两种形式定义符号常量(1)用关键字const定义定义格式为:const 类型名常量名=值;(2)用编译预处理命令#define定义格式为:#define <常量名> <值常量>变量的定义格式为:数据类型变量名1,变量名2,…,变量名n;或数据类型变量名1=初值1,变量名2=初值2,…,变量名n=初值n;2、变量的要素有哪些?请用一个例子说明?名字、类型、值和地址int a = 1;int是类型,a是名字,1是值,地址是编译器给a变量分配的内存空间3、变量在整个程序中能有相同的值吗?为什么?请举例说明。
可以,因为变量的值可以被改变,但不是一定被改变。
如果程序中没有其它不同的赋值,变量将保持不变。
4、为什么程序需要有短整型(short)和长整型(long)?整型的值集理论上是所有整数,但由于受到计算机存储单元的限制,C语言的整型只能表示所有整数的一个有限子集,因此,整数有它的表示范围限制,且不同的C语言系统可表示整数的范围可能不同。
不同范围的整型数据所占有的内存空间大小不同。
程序开发人员通过选择能够满足范围要求的类型(short或long),可以减少数据存储空间。
比如,当短整型可以满足数据范围要求时,就没有必要选择需要更多存储空间的长整型。
5、字符’8’和数字8有何不同?字符’8’是字符型,数字8是整型6、C语言有字符串变量吗?没有7、C语言中的运算符“/”和“%”有何区别?C语言中除法运算符“/”与数学中的运算符“÷”的用法和功能完全一样吗?“/”是除法,“%”是取余数,“/”与“÷”的用法和功能不完全一样,“÷”得到的是两数相除后得到的真实值,“/”得到的是两数相除后取整的值。
c语言作业参考答案
c语言作业参考答案C语言作业参考答案C语言作为一门广泛应用于计算机编程领域的编程语言,对于初学者来说,可能会面临一些难题和困惑。
为了帮助大家更好地理解和掌握C语言的知识,本文将提供一些C语言作业的参考答案,以供参考和学习。
一、基础语法题1. 编写一个C程序,输出“Hello, World!”。
#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}2. 编写一个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;}3. 编写一个C程序,判断一个数是否为偶数。
#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("%d是偶数。
\n", num);} else {printf("%d是奇数。
\n", num);}return 0;}二、数组和指针题1. 编写一个C程序,输入10个整数,然后输出其中的最大值和最小值。
#include <stdio.h>int main() {int arr[10];int i, max, min;printf("请输入10个整数:\n");for (i = 0; i < 10; i++) {scanf("%d", &arr[i]);}max = arr[0];min = arr[0];for (i = 1; i < 10; i++) {if (arr[i] > max) {max = arr[i];}if (arr[i] < min) {min = arr[i];}}printf("最大值:%d\n", max);printf("最小值:%d\n", min);return 0;}2. 编写一个C程序,将一个字符串反转输出。
C语言全部章节习题集(参考答案)
第一章 C语言概述一、选择题:1、一个C程序的执行是从( A )。
A本程序的main函数开始,到main函数结束B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C本程序的main函数开始,到本程序文件的最后一个函数结束D本程序文件的第一个函数开始,到本程序main函数结束2、在 C 语言中,每个语句必须以( D )结束。
A. 回车符B. 冒号C. 逗号D. 分号3、C 语言规定:在一个源程序中,main函数的位置( C )。
A. 必须在最开始B. 必须在系统调用的库函数的后面C. 可以任意D. 必须在最后4、一个C 语言程序是由( B )。
A. 一个主程序和若干子程序组成B. 函数组成C. 若干过程组成D. 若干子程序组成5、下列说法中错误的是( D )。
A. 主函数可以分为两个部分:主函数说明部分和主函数体B. 主函数可以调用任何非主函数的其他函数C. 任何非主函数可以调用其他任何非主函数D. 程序可以从任何非主函数开始执行6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( C )。
A. 生成可执行目标文件B. 生成目标文件C. 输出运行结果D. 自动保存源文件二、填空题:1、C 语言只有 32 个关键字和 9 种控制语句。
2、每个源程序有且只有一个 main 函数,系统总是从该函数开始执行C语言程序。
3、C 语言程序的注释可以出现在程序中的任何地方,它总是以 \* 符号作为开始标记,以 */ 符号作为结束标记。
4、C 语言中,输入操作是由库函数 scanf 完成的,输出操作是由库函数 printf 完成的。
5、系统默认的C 语言源程序文件的扩展名是 .c ,经过编译后生成的目标文件的扩展名是 .obj ,经过连接后生成的可执行文件的扩展名是 .exe 。
6、C 语言的标识符只能由字母、数字和下划线三种字符组成。
第三章数据类型、运算符和表达式一、选择题:1、以下选项中,不正确的 C 语言浮点型常量是( C )。
C语言全部题目及答案
C 语言全部题目及答案Exercise1:Programming Environment and Basic Input/Output1. Write a program that prints “This is my first program!” on the screen.(a) Save this program onto your own disk with the name of e2-1a;(b) Run this program without opening Turbo C;(c) Modify this program to print “This is my second program!”, then save it ase2-1b. Please do not overwrite the first program.2. Write a program that prints the number 1 to 4 on the same line. Write the programusing the following methods:(a) Using four “printf” statemen ts.(b) Using one “printf” statement with no conversion specifier (i.e. no ‘%’).(c) Using one “printf” statement with four conversion specifiers3 .(a) Write a program that calculates and displays the number of minutes in 15 days.(b) Write a program that calculates and displays how many hours 180 minutes equal to.(c) (Optional) How about 174 minutes?ANSWERS:#include<stdio.h>int main(){printf("1"); printf("2"); printf("3"); printf("4");return 0;}return 0; }#include<stdio.h>int main(){float days,minutes; days = 15; int main() {printf("This program!");return 0;int main(){float minutes,hours;printf("The numberminutes in 15 are %f\n", minutes);printf("This program!"); int main() {return 0; }#include<stdio.h> #include<stdio.h> #include<stdio.h>of days firstmyisExercise 2: Data Types and Arithmetic Operations1. You purchase a laptop computer for $889. The sales tax rate is 6 percent. Write and execute a C program that calculates and displays the total purchase price (net price + sales tax).2 .Write a program that reads in the radius of a circle and prints the circle’s diameter, circumference and area. Use the value 3.14159 for “ ”.3 .Write a program that reads in two numbers: an account balance and an annual interest rate expressed as a percentage. Your program should then display the new balance after a year. There are no deposits or withdraws – just the interest payment. Your program should be able to reproduce the following sample run:Interest calculation program. Starting balance? 6000Annual interest rate percentage? 4.25}#include<stdio.h>int main() {printf("%d%d%d%d",1,2,3,4);return 0; }hours = minutes / 60; printf("180 minutes equal to %f hours\n", hours);return 0; }#include<stdio.h>int main() {float minutes,hours;#include<stdio.h>int main(){float net_price,sales_tax,total;net_price = 889;sales_tax = net_price * 0.06;total = net_price + sales_tax;printf("The total purchase price is %g", total);return 0;}#include<stdio.h>int main(){printf("Please input a number as radius:\n");float radius,diameter,circumference,area;scanf("%f",&radius);printf("The diameter is %g\n",diameter = radius * 2);printf("The circumference is %g\n",circumference = radius * 2 * 3.14159); printf("The area is %g\n", area = radius * radius * 3.14159);return 0;}#include<stdio.h>{float SB,percentage,NB;printf("Interest calculation program\n\nPlease enter the Starting Balance:"); scanf("%f",&SB);printf("Please enter the Annual interest rate percentage:");scanf("%f",&percentage);NB = SB * percentage / 100 + SB;printf("\nThe Balance after one year is:%g",NB);return 0;}Exercise 3: Selection structure1 . Write a C program that accepts a student’s numerical grade, converts thenumerical grade to Passed (grade is between 60-100), Failed (grade is between 0-59), or Error (grade is less than 0 or greater than 100). 2 . Write a program that asks the user to enter an integer number, then tells theuser whether it is an odd or even number. 3 . Write a program that reads in three integers and then determines and prints thelargest in the group.ANSWER: #include<stdio.h>#include<stdio.h>int main() {#include<stdio.h>int main() {int grade;printf("Please enter the grade:");scanf("%d",&grade);if (grade >= 60 && grade <= 100) printf("Passed."); else if (grade >= 0 && grade <60)#include<stdio.h>int main() {int a,b,c;printf("Please enter 3 integer numbers\n"); printf("Then I'll tell you which is thelargest\n"); scanf("%d%d%d",&a,&b,&c); if (a > b && a > c) printf("%d is the largest",a);else if (b > a && b > c) printf("%d is the largest",b); else if (c > a && c > b)int a;printf("Please enter an integer number\n");printf("Then I'll tell you whether it's an odd or even number");scanf("%d",&a);if (a%2 == 0)printf("%d is an even number",a);elseprintf("%d is a odd number",a);return 0;}Exercise 4: ‘switch’statement and simple “while” repetition statement1. Write a program that reads three integers an abbreviated date (for example: 26 12 94) andthat will print the date in full; for example: 26th December 1994. The day should be followed by an appropriate suffix, ‘st’,‘nd’,‘rd’ or ‘th’. Use at least one switch statement.2 .Write a C program that uses a while loop to calculate and print the sum of the even integersfrom 2 to 30.3. A large chemical company pays its sales staff on a commission basis. They receive £ 200 perweek plus 9% of their gross sales for that week. For example, someone who sells £ 5000 of chemicals in one week will earn £ 200 plus 9% of £5000, a total of £650. Develop a C program that will input each salesperson’s sales for the previous week, and print out their salary.Process one person’s figures at a time.Enter sales in pounds(-1to end):5000.00Salary is:650.00Enter sales in pounds(-1to end):00.00Salary is:200.00Enter sales in pounds(-1to end):1088.89Salary is:298.00Enter sales in pounds(-1to end):-1Optional:4. A mail order company sells five different products whose retail prices are shown in thefollowing table:Product Number1 2Retail Price (in pounds)2.984.503 4 59.98 4.49 6.87Write a C program that reads in a series of pairs of numbers as follows:(1). Product number(2). Quantity sold for one dayYour program should use a switch statement to help determine the retail price for each product, and should use a sentinel-controlled loop to calculate the total retail value of all products sold in a given week (7days).ANSWER:#include<stdio.h>int main(){printf("Please enter three numbers for date:");int day,month,year;scanf("%d %d %d",&day,&month,&year);if(day>31)printf("Error");else{switch (day){case 1:printf("1st");break;case 2:printf("2nd");break;case 3:printf("3rd");break;case 21:printf("21st"); break;case 22:printf("22nd"); break;case 23:printf("23rd"); break;case 31:printf("31st"); break;default:printf("%dth",day); }}switch(month){#include <stdio.h>int main(){int a,b;a=0;b=2;while (b<=30){a=a+b;b=b+2;}printf("The sum of the even integers from 2 to 30 is %d",a);return 0;}Exercise 5: ‘for’ and ‘do … while ” repetition statements1. Write a program which uses a do/while loop to print out the first 10 powers of 2 other than 0 (ie. it prints out the values of 21, 22, ..., 210). Use a for loop to do the same.2. The constant can be calculated by the infinite series:= 4 - 4/3 + 4/5 - 4/7 + 4/9 - 4/11 +....case 1: printf("January ");break;case 2: printf("February ");break;case 3: printf("March ");break;case 4: printf("April ");break;case 5: printf("May ");break;case 6: printf("June ");break;case 7: printf("July ");break;case 8: printf("August ");break;case 9: printf("September ");break;#include<stdio.h> int main() { float a,b;while (a>0 ) {printf("Enter sales in pounds (-1 to end):");scanf("%f",&a); b=200+a*0.09; if (a==-1) printf(" ");else printf("Salary is %.0f\n",b); }return 0;Write a C program that uses a do/while loop to calculate using the series. The program should ask the user how many terms in the series should be used. Thus ifthe user enters ‘3’, then the program should calcula te as being 4 - 4/3 + 4/5.Nested repetition3. Write a program that prints the following diamond shape. You may use printf statements that print either a single asterisk (*) or a single blank. Maximize your use of repetition (with nested for statements) and minimize the number of printf statements.*****************************************4. Write a program to print a table as follows:1*1= 1 2*1= 2 3*1= 3 ….9*1= 9ANSWER:#include<stdio.h> int main(){int a,b;a=0;b=1;do{a++;9*4=36 9*5=459*6=54#include <stdio.h>int main(){double c,pie,p;int a,b,d,n;printf("Enterterms:");scanf("%d",&a);printf("Pie=");9*7=63 9*8=729*9=81#include <stdio.h>int main(){int row,a,b,j;row=1;j=4;while(row<=5){for(a=j;a>=1;a=a-1) printf(" ");2*2= 43*2= 69*3=27 9*2=183*3= 9#include <stdio.h>int main () { int i, j;for (i=1; i<=9; i++) {for (j=1; j<=9; j++) if (i>=j)printf("%1d*%1d=%2d ", i, j, i*j); printf("\n"); }getchar(); return 0;int main() { int a;for(a=2;a<=1024;a=a *2) printf("%d",a); return 0; }p=p+pie;if(n>1&&n<=a) {if(n%2!=0) printf("+"); else printf("-"); }printf("4/%d",d); n++; }printf("\n=%f",p); return 0; }}row=1; j=1;while(row<=5){ for(a=1;a<=j;a=a +1) printf(" "); for(b=1;b<=9-2*j;b++) printf("*"); for(a=1;a<=j;a=a +1) printf(" "); printf("\n"); row++;Exercise 6: Simple Functions1. Write a C program that reads several numbers and uses the functionround_to_nearest to round each of these numbers to the nearest integer.Theprogram should print both the original number and the rounded number.2. Write a program that reads three pairs of numbers and adds the larger of the firstpair,the larger of the second pair and the larger of the third e a function to return the larger of each pair.3.A car park charges a£2.00minimum fee to park for up to3hours,and anadditional£0.50for each hour or part hour in excess of three hours.The maximum charge for any given24-hour period is£10.00.Assume that no car parks for more than24hours at a time.Write a C program that will calculate and print the parking charges for each of3 customers who parked their car in the car park yesterday.The program should accept as input the number of hours that each customer has parked,and output the results in a neat tabular form,along with the total receipts from the three customers:Charge2.002.50 10.0014.50The program should use the function calculate_charges to determine the charge for each customer.ANSWER: #include<stdio.h> int main() {float larger_Number(float,float); float num1,num2,total=0;int a=0;while (a<3) { void round_to_nearest(float); float num; while (5){ total=total+larger_Number(num1,num2);a=a+1; }#include<stdio.h> #include<math.h> int main() {printf("Please input a number:"); scanf("%f",&num);TOTAL Hours 29.524.0 Car 4.0 1.5 2 3 1#include <stdio.h> int main() {float calculate_charges(float);float hour1,hour2,hour3,charge1,charge2,charge3,total1=0,total2=0;printf("Please input three car's parking hours:"); scanf("%f%f%f",&hour1,&hour2,&hour3);charge1=calculate_charges(hour1); charge2=calculate_charges(hour2); charge3=calculate_charges(hour3);printf("Car Hours Charge\n"); printf("1%10.1f%10.2f\n",hour1,charge1); printf("2%10.1f%10.2f\n",hour2,charge2);void round_to_nearest(float num1) {int near_integer; intsmall_integer=floor(num1);if (num1-small_integer>=0.5) near_integer=ceil(num1); elsenear_integer=floor(num1);printf("\nThe nearest integer of the number is:%d\n",near_integer); }printf("\nThe total is %f",total);return 0; }float larger_Number(float num1,float num2) { float larger;if (num1>=num2) {printf("%f",num1); larger=num1; } else {printf("3%10.1f%10.2f\n",hour3,charge3);total1=hour1+hour2+hour3;total2=charge1+charge2+charge3;printf("TOTAL%7.2f%9.2f",total1,total2);return 0;}float calculate_charges(float hour){float charge;if (hour<=3)charge=2;if (hour>3 && hour<=19)charge=2.+0.50*(hour-3.);if (hour>19 && hour<=24)charge=10;return(charge);}Exercise 7: More Functions1.Write a program that uses sentinel-controlled repetition to take an integer as input,and passes it to a function even which uses the modulus operator to determine if the integer is even. The function even should return 1 if the integer is even, and0 if it is not.base exponentThe program should take the value returned by the function even and use it to print out a message announcing whether or not the integer was even.2.Write a C program that uses the function integerPower1(base,exponent)to return the value of:base exponentso that, for example, integerPower1(3, 4) gives the value 3 * 3 * 3 * 3.Assume that exponent is a positive, non-zero integer, and base is an integer.The function should use a for loop, and make no calls to any math library functions.3. Write a C program that uses the recursive function integerPower2(base,exponent) to return the value of:base exponentso that, for example, integerPower2(3, 4) gives the value 3 * 3 * 3 * 3. Assume that exponent is a positive, non-zero integer, and base is an integer.The function should make no calls to any math library functions.(Hint:the recursive step will use the relationship:base exponent=base.base exponent-1and the base case will be when exponent is1since:base1=base.)ANSWER:#include<stdio.h>int main(){int a,b;int judge(int);void judge1(int);printf("Please enter a number");scanf("%d",&a);while(a>=-1){b=judge(a);judge1(b);printf("Please evter a number");scanf("%d",&a);}return 0;}int judge(int x){if (x%2!=0)return (0);elsereturn (1);}void judge1(int x){if (x==1)printf("It's even\n"); elseprintf("It's odd\n");#include<stdio.h>int main(){int integerPower2(int,int);int base,exponent,result;printf("This program cancalculate the power\n");printf("Enter a integer basenumber:\n");scanf("%d",&base);printf("Enter a non-zerointeger number as the exponent:\n");scanf("%d",&exponent);result=integerPower2(base,expo nent);printf("The power is:%d",result); return 0;}int integerPower2(int x,int y){if(y==1)return (x);elsereturn (x*integerPower2(x,y-1)); }#include <stdio.h>int main(){int integerPower1(int,int);int base,exponent,answer;printf("Let us calculate the power\n");} printf("Please enter a integer base number:\n");scanf("%d",&base);printf("Please enter a non-zero integer number asthe exponent:\n");scanf("%d",&exponent);answer=integerPower1(base,exponent);printf("So the power is:%d",answer);return 0;}int integerPower1(int x,int y){int i,a;Exercise 08: Arrays1.Write a program that reads ten numbers supplied by the user into a singlesubscripted array,and then prints out the average of them.2. Write a program that reads ten numbers supplied by the user into a 2 by 5 array,and then prints out the maximum and minimum values held in:(a)each row(2rows)(b) the whole array3 .Use a single-subscripted array to solve the following problem. Read in 20numbers,each of which is between10and100,inclusive.As each number is read, print it only if it is not a duplicate of a number already read.Prepare for the “worst case”in which all 20 numbers are different. Use the smallest possible array to solve this problem.#include<stdio.h>int main(){#define MAXGRADES 10 int grades[MAXGRADES]; int i, total = 0;#include<stdio.h>int main(){#define MAXNUM 5int number[MAXNUM]; int i,j,a;ANSWER: #include<stdio.h> int main() {#define NUMROWS 2 #define NUMCOLS 5int number[NUMROWS][NUMCOLS]; int i,j,max1,max2,min1,min2;for (i=0;i<NUMROWS;i++){ printf("Please input 5 numbers with space between each other:\n"); for (j=0;j<NUMCOLS;j++) scanf("%d",&number[i][j]); }max1=number[0][0]; min1=number[0][0]; max2=number[1][0];{ printf("Enter a number:"); scanf("%d",&grades[i]); }printf("\nThe average of the numbers\n"); for(i=0;i<MAXGRADES;i++) { printf("%d",grades[i]); total+=grades[i]; }average = total/10.0;for(i=0;i<MAXNUM;i++) scanf("%d",&number[i]);a=0;for(i=0;i<MAXNUM;i++) { for(j=0;j<i;j++) {if(number[i]==number[j])a++;}min2=number[1][0];for(j=0;j<NUMCOLS;j++) { if(number[0][j]>=max1) max1=number[0][j];if(number[0][j]<=min1)min1=number[0][j];if(number[1][j]>=max2)max2=number[1][j];if(number[1][j]<=min2)min2=number[1][j];}printf("The max of the first row is %d\n",max1);printf("The min of the first row is %d\n",min1);printf("The max of the second row is %d\n",max2);printf("The min of the second row is %d\n",min2);printf("The max of two rows is ");if (max1>=max2)printf("%d\n",max1);else printf("%d\n",max2);printf("The min of two rows is ");if (min1<=min2)printf("%d\n",min1);else printf("%d\n",min2);return 0;}Exercise 9: More Arrays1. Write a program that enters 5 names of towns and their respective distance (aninteger) from London in miles. The program will print of the names of the towns that are less than 100 miles from London. Use arrays and character strings to implement your program.2. Write a program that prompts the user to type in four character strings, placesthese in an array of strings, and then prints out: (e.g. I am Peter Pan)(i) The four strings in reverse order. (e.g. Pan Peter am I)(ii) The four strings in the original order, but with each string backwards. (e.g. I ma reteP naP)(iii) The four strings in reverse order with each string backwards. (e.g. naP reteP ma I)#include<stdio.h>int main(){char character[5][20];int integer[5];int i;for(i=0;i<5;i++){ printf("Please enter a name of a town:\n");scanf("%s",character[i]);printf("Enter its distance from London in miles:\n");scanf("%d",&integer[i]);}printf("The towns that are less than 100 miles from London are:\n"); for(i=0;i<5;i++){if(integer[i]<100)printf("%s",character[i]);}return 0;}Exercise 10: Pointers1. Write a program that reads 5 integers into an array, and then uses four differentmethods of accessing the members of an array to print them out in reverse order.//Pan Peter am I #include<stdio.h> int main() {char four[4][81]; int i;printf("Please input four words:\n");for(i=0;i<4;i++) scanf("%s",four[i]);printf("The four strings in reverse order is :\n"); for(i=3;i>=0;i--) { printf("%s",four[i]);//naP reteP ma I #include <stdio.h> int main() {char four[4][81]; int i,j;printf("Please input four words:\n"); for(i=0;i<4;i++)scanf("%s",four[i]); printf("The four strings are:\n"); for(i=3;i>=0;i--) {for(j=0;four[i][j]!='\0';j++); for(j=j-1;j>=0;j--) {2. Write a program that reads 8 floats into an array and then prints out the second,fourth, sixth and eighth members of the array, and the sum of the first, third, fifth and seventh, using pointers to access the members of the array.3. (Optional) Write a program that use a SINGLE FUNCTION (用一个函数)tofind and return simultaneously both the lowest and highest values in an array of type int. Suppose the size of the array is 6.ANSWER:#include<stdio.h>int main(){int num1[5],i;printf("Please input 5 numbers:\n");for (i=0;i<5;i++)scanf("%d",&num1[i]);//the first wayprintf("\nPrint them out in reverse order in the first way:\n");for (i=4;i>=0;i--)printf("%d",num1[i]);//the second wayprintf("\nPrint them out in reverse order in the second way:\n");int *num2;num2 = &num1[0];for (i=4;i>=0;i--)printf("%d",*(num2+i));//the third wayprintf("\nPrint them out in reverse order in the third way:\n");for(i=4;i>=0;i--)printf("%d",*(num1+i));//the fourth wayprintf("\nPrint them out in reverse order in the fourth way:\n");int *num4;num4 = &num1[4];for (i=0;i<5;i++)printf("%d",*(num4-i));return 0;}#include<stdio.h>int main(){float num[8];int i;printf("Please input 8 floats:\n");for (i=0;i<8;i++)scanf("%f",&num[i]);//first, print out the second,fourth,sixth and eighthmembers of the arrayfor (i=1;i<8;i=i+2)printf("%f",*(num+i));//second, print out the sum of thefirst,third,fifthand seventhfloat total;for (i=0;i<8;i=i+2)total = total+*(num+i); #include<stdio.h>void SingleFunction(int *,int *); int main(){int num[6];int i;printf("Please input 6numbers:\n"); for (i=0;i<6;i++)scanf("%d",&num[i]);SingleFunction(num,num); return 0;}void SingleFunction(int *max,int *min) {int i,maxnum,minnum; maxnum = *max++;minnum = *min++;for(i=-1;i<5;i++)。
C语言1_7章课后作业答案
C语言1-7章课后作业答案第一章 C语言概述【习题1-1】简述C语言的特点。
答:C语言的特点:C语言简洁、紧凑、使用灵活、方便;运算符丰富;数据结构丰富;C是结构式语言;C语法限制不太严格,程序设计自由度大;C语言允许直接访问物理地址;C语言程序生成代码质量高;C语言适用范围大,可移植性好。
【习题1-2】请从以下的4个选项中选择一个正确答案。
(1)A (2)C (3)B (4)D(5)A (6)C【习题1-3】填空。
(1)英文字母、下划线、数字(2)函数(3) 函数头、函数体(4)独立(5);、#、/*…*/、{、}、 main、main【习题1-4】请指出以下哪些是合法的标识符?哪些又是合法的用户标识符。
101 int 3ip x_1 x+1 count 1234Xy x%y if while a.bc x&y _ _1_112 Abc name x break for x=y合法的标识符有:x_1、int、count、Xy、if、while、Abc、name、x、break、for合法的用户标识符有:x_1、count、Xy、Abc、name、x【习题1-5】简述上机调试运行C程序的操作步骤。
答:上机运行C语言程序的操作步骤为:启动Visual C++ 6.0→建立工程→创建源程序文件→输入(编辑)源程序内容→保存源程序文件→编译源程序文件→连接目标程序→执行程序→开始另一个程序。
【习题1-6】上机运行本章的3个例题。
略【习题1-7】参照本章例题,编写一个C语言源程序,输出以下信息:**************Nice to meet you!**************编写程序如下:#include<stdio.h>void main(){printf("**************\n");printf("Nice to meet you!\n");printf("**************\n");}第二章基本数据类型和运算符【习题2.1】上机编辑并调试本章所有例题。
C语言课后作业题参考答案
C 语言课后作业题参考答案第二章2.2 用赋值表达式表示下列计算1) c b a x y +=2) 2/5262)(lne d a x -+= 3) y X aX X=+sin cos π24) R R R R =++1111123 5)232)4(7)2(5)2(31x x x x x y ++++=参考答案:1) y=pow(x,a+pow(b,c))或者:exp((a+exp(c*log(b)))*log(x))2) x=pow(log(sqrt(a+d*d))-exp(26),5.0/2)或者:exp(5.0/2*log(log(sqrt(a+d*d))-exe(26)))3) y=sin(x)/(a*x)+fabs(cos(3.1415926*x/2))4) R=1.0/(1.0/R1+1.0/R2+1.0/R3)5) y=x/(1+(x/(3+(pow(2*x,2)/5+(pow(2*x,3)/(7+pow(4*x,2)))))))2.6 编写程序,输入两个整数,分别求它们的和、差、积、商、余数并输出。
参考答案:#include<stdio.h>void main(){int m,n;printf("请输入2个整数\n");scanf("%d%d",&m,&n);printf("%d+%d=%d\n",m,n,m+n);printf("%d-%d=%d\n",m,n,m-n);printf("%d*%d=%d\n",m,n,m*n);printf("%d 除以%d :%f\n",m,n,(float)m/n);printf("%d 除以%d 的余数:%d\n",m,n,m%n);} 2.9 已知摄氏温度C 与华氏温度F 的转换关系是)32(95-=F C ,编写一个摄氏温度与华氏温度转换的程序,输入C ,输出F.参考答案:#include<stdio.h>void main(){float f,c;printf("请输入摄氏温度的值:\n");scanf("%f",&c); //输入33//f=9*c/5+32; //结果为91.4f=9.0/5*c+32; //结果为91.4//f=9/5*c+32; //结果为65printf("转换为华氏温度是:%f\n",f);} 第3章 分支程序设计3.3 编写程序,输入一个字母,若其为小写字母,将其转换成相应的大写字母,然后输出。
C语言习题全集 答案
目录第一单元程序设计和C语言.................................................... 错误!未定义书签。
第二单元顺序程序设计............................................................ 错误!未定义书签。
第三单元分支程序设计............................................................ 错误!未定义书签。
第四单元循环程序设计............................................................ 错误!未定义书签。
第五单元数组........................................................................ 错误!未定义书签。
第六单元函数........................................................................ 错误!未定义书签。
第七单元指针........................................................................ 错误!未定义书签。
第八单元结构体和共用体........................................................ 错误!未定义书签。
第九单元文件........................................................................ 错误!未定义书签。
附加题............................................................................................ 错误!未定义书签。
C语言200道练习题及答案
一维数组
题目1
题目2
题目3
题目4
求一维数组中的最大值 和最小值。
将一维数组中的元素逆 序存放。
查找一维数组中指定的 元素,并返回其下标。
求一维数组中所有元素 的和。
二维数组
题目5
题目6
求二维数组中所有元素的最大值和最小值 。
将二维数组转置,即行列互换。
题目7
题目8
查找二维数组中指定的元素,并返回其位 置。
C语言200道练习题 及答案
汇报人:XX
目录
• 基础知识练习题 • 数组与字符串练习题 • 函数与模块化练习题 • 指针与内存管理练习题 • 数据结构与算法练习题 • 综合应用练习题
01
基础知识练习题
变量与数据类型
声明整型变量并赋值
int a = 10;
声明字符型变量并赋值
char c = 'A';
代码优化
通过减少不必要的计算、消 除冗余代码等方式对代码进 行优化。
并行计算与多线程
了解并行计算和多线程的基 本概念,探索在程序中应用 并行计算和多线程技术提高 性能的可能性。
THANKS
感谢观看
掌握如何使用malloc()、calloc() 等函数在堆区动态分配内存空间
。
动态内存释放函数
了解如何使用free()函数释放之前 分配的内存空间,以避免内存泄漏 。
内存分配失败处理
熟悉在动态内存分配过程中,如何 处理分配失败的情况,如检查返回 值是否为NULL等。
05
数据结构与算法练习题
结构体与联合体
01
掌握如何定义指向函数的指针变量,以及如何通过函数指针调
用函数。
c语言作业答案
No.: Name:第1讲C语言概述注:本系列习题中符号表示一串字符中的空格;符号表示下划线;符号ê表示换行回车;即键盘上Enter键..一、选择题1. 一个C程序的执行是从A ..A 本程序main函数开始;到main函数结束B 本程序文件第一个函数开始;到最后一个函数结束C 本程序文件第一个函数开始;到本main函数结束D 本程序main函数开始;到本程序文件最后一个函数结束2. 以下叙述不正确的是D ..A 一个C源程序必须包含一个main函数B 一个C源程序可由一个或多个函数组成C C程序的基本组成单位是函数D 在C程序中;注释说明只能位于一条语句的后面3. 以下叙述正确的是C ..A 在对一个C程序进行编译的过程中;可发现注释中的拼写错误B 在C程序中;main函数必须位于程序的最前面C 语言本身没有输入输出语句D C程序的每行中只能写一条语句4. 一个C语言程序是由B ..A 一个主程序和若干个子程序组成B 函数组成C 若干过程组成D 若干子程序组成5. 以下叙述中正确的是C ..A C语言比其他语言高级B C语言可以不用编译就能被计算机识别执行C C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D C语言出现的最晚;具有其他语言的一切优点6. 下列叙述中正确的是D ..A C语言编译时不检查语法B C语言的子程序有过程和函数两种C C语言的函数可以嵌套定义D C语言的函数可以嵌套调用7. 以下叙述中正确的是A ..A 构成C程序的基本单位是函数B 可以在一个函数中定义另一个函数C main函数必须放在其他函数之前D 所有被调用的函数一定要在调用之前进行定义8. C语言规定;在源程序中;main函数的位置C ..A 必须在最开始B 必须在系统调用的库函数的后面C 可以任意D 必须在最后9. 下列选项中不是结构化程序基本结构的是B ..A 顺序结构B 分支结构C 选择结构D 循环结构10. 下列四组选项中;均不是C语言关键字的是A ..A define IF typeB getc char printfC include case scanfD while go pow11. 下列四组选项中;均是不合法的标识符的是B ..A W P 0 doB b-a goto intC float la0 AD -123 abc TEMP12. 下列可用于C语言标识符的一组是B ..A void; define; WORDB a3 b3; 123; CarC For; -abc; IF CaseD 2a; DO; sizeof13. 以面的C程序中;错误的是D ..A mainB main{ int x;y;z; { int x;y;z;x=0;y=x-1; x=0;y=x+1;z=x+y;} z=x+y;}C mainD main{ int x;z; { int x;y;z;int y; x=0;y=x+1;x=0;y=x+1; z=x+y;}z=x+y;}14. C语言中的标识符只能由字母;数字和下划线三种字符组成;且第一个字符C ..A 必须为字母B 必须为下划线C 必须为字母或下划线D 可以是字母;数字和下划线中任一字符15. 下面各选项中;均是C语言标识符的选项组是B ..A 33 we autoB 23 me 3ewC 43 3e elseD ER -DF 32二、填空题1. 国际上C语言常见的三个标准是:标准C 、ANSI C 和ISO C ..2. C语言源程序的文件格式为.c和.h ..3. 请描述C程序中main函数的作用:接受系统调用;开始程序的执行;直至程序结束..三、程序编写题请在本页背面作答1. 编写一个C程序;输出以下信息Very Good2. 编写程序;实现求整数10、20和35的平均值提示:注意给出的是三个整数;求出的平均值不是整数1No.: Name:第2讲C语言基本数据类型一、选择题1. 若x、i、j、k都是int型变量; 则计算下面表达式后;x的值为C ..x=i=4;j=16;k=32A 4B 16C 32D 522. 下列四组选项中;均是合法转义字符的是A ..A ‘\"’ ‘\\’ ‘\n’B ‘\’ ‘\017’ ‘\"’C ‘\018’ ‘\f’ ‘xab’D ‘\\0’ ‘\101’ ‘xlf’3. 下面正确的字符常量是D ..A "c"B ‘\\’’C ‘’D ‘K’4. 以下叙述不正确的是D ..A 在C程序中;逗号运算符的优先级最低B 在C程序中;MAX和max是两个不同的变量C 若a和b类型相同;在计算了赋值表达式a=b后;b中的值将放入a中;b中的值不变D 从键盘输入数据时;对于整型变量只能输入整型数值;对于实型变量只能输入实型数值5. 以下叙述正确的是C ..A 在C程序中;每行只能写一条语句B 若a是实型变量;C程序中允许赋值a=10;因此实型变量中允许存放整型数C 在C程序中;%是只能用于整数运算的运算符D 在C程序中;无论是整数还是实数;都能被准确无误地表示6. 已知字母A的ASCII码为十进制数65;且c2为字符型;则执行语句c2=‘A’+‘6’-‘3’后;c2的值为A ..A DB 68C 不确定的值D C7. sizeoffloat是B ..A 一个双精度型表达式B 一个整型表达式C 一种函数表达式D 一个不合法的表达式8. 设C语言中;一个int型数据在内存中占2个字节;则unsigned int 型数据的取值范围为C ..A 0~255B 0~32767C 0~65535 D9. 设有说明:char w; int x; float y; double z;则表达式wx+z-y值的数据类型D ..A floatB charC intD double10. 设以下变量均为int类型;则值不等于7的表达式是C ..A x=y=6;x+y;x+1B x=y=6;x+y;y+1C x=6;x+1;y=6;x+yD y=6;y+1;x=y;x+111. C语言中的基本数据类型包括B ..A 整型、实型、逻辑型B 整型、实型、字符型C 整型、字符型、逻辑型D 字符型、实型、逻辑型12. 若变量已正确定义并赋值;以下符合C语言语法的表达式是B ..A a:=b+1B a=b=c+2C int 18.5%3D a=a+7=c+b13. C语言中运算对象必须是整型的运算符是A ..A %=B /C =D <=14. 若变量a;i已正确定义;且i已正确赋值;合法的语句是B ..A a==1B ++i;C a=a++=5;D a=inti;15. int a=7;float x=2.5;y=4.7;则表达式x+a%3intx+y%2/4的值是A ..A 2.500000B 2.750000C 3.500000D 0.00000016. 在16位C编译系统上; 若定义long a;; 则能给a赋40000的正确语句是D ..A a=20000+20000;B a=400010;C a=30000+10000;D a=4000L10L;17. 设有int x=11;则表达式x++1/3的值是A ..A 3B 4C 11D 1218. 下列数据中;不合法的C语言实型数据的是C ..A 0.123B 123e3C 2.1e3.5D 789.019. 若变量a是int类型;并执行了语句:a=‘A’+1.6;;则正确的叙述是D ..A a的值是字符CB 不允许字符型和浮点型相加C a的值是浮点型D a的值是字符‘A’的ASCII值加上120. 设变量n为float类型;m为int类型;则以下能实现将n中的数值保留小数点后两位;第三位进行四舍五入运算的表达式是B ..A n=n100+0.5/100.0B m=n100+0.5;n=m/100.0C n=n100+0.5/100.0D n=n/100+0.5100.021. 下面四个选项中;均是不正确的8进制数或16进制数的选项是D ..A 016 0x8f 018B 0abc 017 0xaC 010 -0x11 0x16D 0a12 7ff -12322. 以下选项中;与k=n++完全等价的表达式是A ..A k=n;n=n+1B n=n+1;k=nC k=++nD k+=n+123. 下面均是合法整型常量的选项是A ..A 160 -0xffff 011B -0xcdf 01a 0xeC -01 986012 0668D -0x48a 2e5 0x24. 假定x和y为double型; 则表达式x=2;y=x+3/2的值是D ..A 3.500000B 3C 2.000000D 3.00000025. 以下变量x;y;z均为double类型且已正确赋值;不能正确表示数学式子x÷y÷z的C语言表达式是A ..A x/yzB x1/yzC x/y1/zD x/y/z26. 已知int k;m=1;执行语句k=-m++;后;k的值是A ..A -1B 0C 1D 227. 已知int m;float k;正确的语句是D ..A int k%mB intk%mC intk%mD intk%m28. 不能进行++和--运算的数据类型为D ..A 指针B 整型C 长整型D 常量2No.: Name:29. putchar函数可以向终端输出一个D ..A 整型变量表达式B 实型变量值C 字符串D 字符或字符型变量值30. printf函数中用到格式符%5s;其中数字5表示输出的字符串占用5列..字符串长度大于5;则输出按方式B ;如果字符串长度小于5;则输出按方式C ..A 从左起输出该字符串;右补空格B 按原字符长从左向右全部输出C 右对齐输出该字符串;左补空格D 输出错误信息31. 阅读以下程序;当输入数据的形式为:25;13;10ê;则正确的输出结果为D ..main{ int x;y;z;scanf "%d%d%d";&x;&y;&z;printf "x+y+z=%d\n";x+y+z;}A x+y+z=48B x+y+z=35C x+z=35D 不确定32. 根据下面的程序及数据的输入和输出形式;程序中输入语句的正确形式应该为A ..main{ char ch1;ch2;ch3;输入语句printf "%c%c%c";ch1;ch2;ch3;}输入形式:A B C输出形式:A BA scanf"%c%c%c";&ch1;&ch2;&ch3;B scanf"%c;%c;%c";&ch1;&ch2;&ch3;C scanf"%c %c %c";&ch1;&ch2;&ch3;D scanf"%c%c";&ch1;&ch2;&ch3;33. 已知ch是字符型变量;下面不正确的赋值语句是A ..A ch=‘a+b’;B ch=‘\0’;C ch=‘7’+‘9’;D ch=5+9;34. 若变量已正确说明为float型;要通过语句scanf "%f%f%f";&a;&b;&c;给a赋予10.0;b赋予22.0;c赋予33.0;下列不正确的输入形式是B ..A 10ê22ê33B 10.0;22.0;33.0êC 10.0ê22.0 33.0êD 10 22ê33ê35. 下列程序段的输出结果是: C ..int a=1234; float b=123.456;double c=12345.54321;printf"%2d;%2.1f;%2.1f";a;b;c;A 无输出B 12;123.5;12345.5C 1234;123.5;12345.5D 1234;123.4;1234.536. 已有定义int a=-2;和输出语句printf"%8lx";a;以下正确的叙述是D ..A 整型变量的输出形式只有%d一种B %x是格式符的一种;可适用于任何一种类型的数据C %x是格式符的一种;其变量的值按十六进制输出;但%8lx是错误的D %8lx不是错误的格式符;其中数字8规定了输出字段的宽度二、填空题1. 若有定义:int m=5;y=2;;则计算表达式y+=y-=m=y后的y值是-16 ..2. 在C语言中;一个int型数据在内存中占2个字节;则int型数据的取值范围为-32768 32767 ..3. 若a是int型变量;则计算表达式a=25/3%3后a的值为2 ..4. 若x和n均是int型变量;且x和n的初值均为5;则计算表达式x+=n++后x的值为10 ;n的值为6 ..5. 若有定义:char c="\0108F\0";则字符串c中包含的字符个数为5 ..6. 定义int a=5;b;;则执行表达式b=++a--a之后;变量b的值为25 ..7. 已知字母a的ASCII码为十进制数97;且设ch为字符型变量;则表达式ch=‘a’+‘8’-‘3’的值为102或‘f’ ..8. 以下程序段的输出结果是i:dec=-4;oct=177774;hex=fffc;unsigned=65532 ..main{ short i; i=-4; printf"\ni:dec=%d;oct=%o;hex=%x;unsigned=%u\n";i;i;i;i;}9. 假设变量a和b均为整型;请填空使得以下语句可以不借助任何变量把a、b中的值进行交换..a+= b ; b=a- b ; a-= b ;10. 有一输入语句scanf"%d";k; 则不能使float类型变量k得到正确数值的原因是:1 k应该加上取地址符号&;成为&k 和2 float型数据不能用%d格式来输入..三、程序编写题请在本页背面作答1. 输入圆半径5和圆心角60_C;输出圆的周长、面积和扇形周长、面积..2. 输入一个华氏温度;要求输出摄氏温度..公式为C _ 59 pF _ 32q;输出要有文字说明;取2位小数..3No.: Name:第3讲算法与程序基本结构一、选择题1. 如下程序的输出结果是A ..main{ int x=1;a=0;b=0;switchx{ case 0: b++;case 1: a++;case 2: a++;b++;}printf"a=%d;b=%d\n";a;b;}A a=2;b=1B a=1;b=1C a=1;b=0D a=2;b=22. 以下程序执行后输出结果是C ..main{ int i=1;j=1;k=2;ifj++||k++ &&i++printf"%d;%d;%d\n";i;j;k;}A 1;1;2B 2;2;1C 2;2;2D 2;2;33. 如下程序的输出结果是C ..main{ float x=2.0;y;ifx<0.0 y=0.0;else ifx<10.0 y=1.0/x;else y=1.0;printf"%f\n";y;}A 0.000000B 0.250000C 0.500000D 1.0000004. 设int x=1;y=1;表达式x||y--的值是B ..A 0B 1C 2D -15. 若运行时给变量x输入12;则以下程序的运行结果是A ..main{ int x;y;scanf"%d";&x;y=x>12x+10:x-12;printf"%d\n";y;}A 0B 22C 12D 106. 在C程序中;判逻辑值时;用”非0”表示逻辑值”真”;又用”0”表示逻辑值”假”..在求逻辑值时;逻辑表达式值为”真”和”假”分别用A 表示..A 1和0B 0和1C 非0和非0D 1和17. 以下4个选项中;不能看做一条语句的是D ..A ;B a=5;b=2.5;c=3.6;C ifa<5 ;D ifb=5 x=2;y=6;8. 能正确表示逻辑关系:"a≥10或a≤0"的C语言表达式是D ..A a>=10 or a<=0B a>=0|a<=10C a>=10&&a<=0D a>=10||a<=09. 如下程序的输出结果是C ..main{ int a=2;b=-1;c=2;ifa<bifb<0 c=0;else c++;printf"%d\n";c;}A 0B 1C 2D 310. 设x;y和z都是int型变量;且x=3;y=4;z=5;则下面表达式中;值为0的表达式D ..A x&&yB x<=yC x||++y&&y-zD x<y&&z||111. 若有条件表达式expa++:b--;则以下表达式中能完全等价于表达式exp 的是B ..A exp==0B exp=0C exp==1D exp=112. 以下程序的输出结果是A ..main{ int a=4;b=5;c=0;d;d=a&&b||c;printf"%d\n";d;}A 1B 0C 非0的数D -113. 设有int a=1;b=2;c=3;d=4;m=2;n=2;执行m=a>b&& n=c>d后n的值是B ..A 1B 2C 3D 414. 下面程序D ..main{ int a=5;b=0;c=0;ifa=b+c printf"\n";else printf"$$$\n";}A 有语法错不能通过编译B 可以通过编译但不能通过连接C 输出D 输出$$$15. 当k的值不为0时;在下列选项中能够将k的值赋给变量m和n的是B ..A m=k=nB m=k&&n=kC m=k||n=kD k=m&&n=k16. 已知int t=0; while t=1 {...}则以下叙述正确的是B ..A 循环控制表达式值为0B 循环控制表达式值为1C 循环控制表达式不合法D 以上说法都不对17. 下面程序输出结果是B ..main{ int n=9;whilen>6 {n--; printf"%d";n;}}A 987B 876C 8765D 987618. 在下列程序段中;没有构成死循环的是D ..A B C Dint i=10; for;;; int k=10; int s=36;while1 do{k++;} whiles{i=i%3+1; whilek>10; --s;ifi>10break;}19. 以下程序段的描述;正确的是C ..x=-1; do { x=xx; }whilex;A 是死循环B 循环执行两次C 循环执行一次D 有语法错误4No.: Name:20. 在下述程序中;判断i>j共执行的次数是D ..main{ int i=0;j=10; k=2; s=0;{ for ;;{ i+=k;ifi>j {printf"%d";s; break;}s+=i;}}A 4B 7C 5D 621. 下面程序的功能是把316表示为两个加数的和;使两个加数分别能被13和11整除;请选择填空..满足题意的选项是B ..include <stdio.h>main{ int i=0;j;k;do{i++;k=316-13i;}while ;j=k/11;printf"316=13%d+11%d";i;j;}A k/11B k%11C k/11==0D k%11==022. 下面程序的运行结果是B ..include <stdio.h>main{ int a=1;b=10;do {b-=a;a++;}whileb--<0;printf"a=%d;b=%d\n";a;b;}A a=3;b=11B a=2;b=8C a=1;b=-1D a=4;b=923. 执行语句fori=1;i++<4;;后变量i的值是C ..A 3B 4C 5D 不定24. 关于程序段int k=10; whilek=0 k=k-1;下面描述中正确的是C ..A while循环执行10次B 循环是无限循环C 循环体语句一次也不执行D 循环体语句执行一次25. 表达式for表达式1; ;表达式3可理解为B ..A for表达式1;0;表达式3B for表达式1;1;表达式3C for表达式1;表达式1;表达式3D for表达式1;表达式3;表达式326. 以下程序的输出结果是B ..main{ int i;j;x=0;fori=0;i<2;i++{ x++;forj=0;j<3;j++ {ifj%2 continue;x++;}x++;}printf"x=%d\n";x;}A x=4B x=8C x=6D x=1227. 以下描述中正确的是C ..A 因do-while循环中循环体语句只能是一条可执行语句;所以循环体内不能使用复合语句B do-while循环由do开始;用while结束;在while表达式后面不能写分号C 在do-while循环体中;先执行一次循环;再进行判断D do-while循环中;根据情况可以省略while28. 针对下列语句说法正确的是A ..int i;x;fori=0;x=0;i<=9&&x=876;i++ scanf"%d";x;A 最多的执行10次B 最多执行9次C 是无限循环D 循环体一次也不执行29. C语言中while 和do-while循环的主要区别是A ..A do-while的循环体至少无条件执行一次B while的循环控制条件比do-while更严格C do-while允许从外部转到循环体内D do-while 的循环体不能是复合语句30. 执行程序段int k=1; while++k<4;后k值为A ..A 4B 5C 6D 8二、填空题1. 执行程序段int a=1234; printf "%2d\n";a;的输出结果是1234 ..2. 以下程序的输出结果是16 ..main{int a=0; a+=a=8; printf"%d\n";a;}三、程序编写题如本页空间不够请在背面作答1. 编写程序求解求和公式S _ 1 12 13 14 . . .的前10项..要求画出流程图ANSI流程图和NS流程图..2. 编写程序实现输入整数n;输出如下所示数字组成的菱形如n=5..要求画出流程图ANSI流程图和NS流程图..11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 3 2 1 1 2 3 2 11 2 11。
C语言各章作业及练习题
第二章作业题答案1 进制转换(1)7A.3D (或者7A.3DH)(2)01001011.01010111,4B.57 (二进制最前面的“0”可以省去;十六进制也可4B.57H)2 码制转换(1)原码:01010; 真值:+0.1010(2)原码:10110; 真值:-0.01103 设某机器字长为8位:(1)-1(2)-2-7(还可以进一步计算为:-0.0078125)4.浮点数转换为二进制:(A27F)16= (1010001001111111)2阶码补码为:E补=101000,则阶码真值E = -11000 = -24;尾数补码:M补= 1.001111111,尾数真值M = - 0.110000001;则(A27F)16的十进制真值为:- (2-1+2-2+2-9) x 2-24 = -(2-25+2-26+2-33)上面的结果还可以进一步化简写成分数或小数,只写到这一步也可以。
5将十进制数-7.25转换为IEEE754短浮点格式:(1)转换为二进制:(-7.25)10=(-111.01)2(2)规格化:(-111.01)2 = (-1.1101)2 x22(3)计算阶码(移码表示):E移= 127+2 = (129)10 = (10000001) 2(4)短浮点格式:(11000000111010000000000000000000)2 = (C0E80000)166.(1) 1000H,1006H(2) 1002H,2374H(3) E529H7 设当前堆栈状态如图3所示,按字编址,下列各小题分别执行,写出结果:(1)(SP) = 1003H, (R0) = 32H(2)(SP) = 1001H,(R0)=1000H,存储单元1000H~1002H的值分别是30H、1000H、32H。
第六章作业题一、选择题1.某字符显示器,分辨率为25x80,则第2行第5列(序号均从0开始)字符的代码,应存放在基本显示缓存的第()单元中(从0号单元开始)。
c语言课后习题答案
c语言课后习题答案C语言课后习题答案一、选择题1. C语言中,用于定义变量的关键字是( A )。
A. intB. floatC. doubleD. char2. 下列选项中,哪一个是C语言的合法标识符?( C )A. 2variableB. variable2C. _variable2D. variable#23. 在C语言中,用于实现条件判断的关键字是( B )。
A. ifB. switchC. caseD. default二、填空题1. C语言中,一个整型变量(int)通常占用的字节数是______。
答案:4(在32位系统中)2. 在C语言中,若要声明一个字符数组,可以使用以下语法:______。
答案:char arrayName[size];3. 当需要在C语言中进行文件操作时,通常使用包含的头文件是______。
答案:<stdio.h>三、简答题1. 请简述C语言中数组的定义和初始化方法。
答案:在C语言中,数组是一种基本的数据结构,用于存储具有相同类型的元素集合。
数组的定义格式为:类型名数组名[元素个数];初始化可以使用花括号将初始值包围起来,如:int arr[5] = {1, 2, 3, 4, 5}。
2. 描述C语言中函数的定义和调用过程。
答案:函数是C语言中实现代码复用的一种方式。
函数定义包括返回类型、函数名、参数列表和函数体。
例如:int add(int a, int b) { return a + b; } 函数调用则是在代码中使用函数名和参数列表来执行函数,如:int result = add(3, 5);四、编程题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语言-习题集参考答案全部
目录- 1 -目录第一章C语言基础知识参考答案 ................................................................................ - 2 - 第二章顺序结构参考答案.......................................................................................... - 5 - 第三章选择结构参考答案.............................................................................................. - 7 - 第四章循环结构参考答案............................................................................................ - 11 - 第五章函数参考答案................................................................................................ - 15 - 第六章指针参考答案.................................................................................................... - 18 - 第七章一维数组参考答案............................................................................................ - 21 - 第八章二维数组参考答案.......................................................................................... - 28 - 第九章字符串参考答案.......................................................................................... - 31 - 第十章对C语言的深入讨论参考答案 ....................................................................... - 33 - 第十一章结构体与共用体参考答案............................................................................ - 34 - 第十二章文件参考答案........................................................................................ - 35 -全国计算机等级考试二级教程C 语言习题集参考答案- 2 - 第一章C语言基础知识参考答案一,选择题1 C2 D3 A4 C5 A6 D7 C 分析:C答案以数字开头了8 D 分析:int 是关键字9 C 10 D 11 B12 D 分析:Visual C++6.0中int类型的变量占的字节数为4。
(完整word版)C语言课后习题答案(最终)
第0章习题1. 将下列十进制数分别转化为二进制数、八进制数和十六进制数:(1)128 (2)511 (3)1024 (4)65535 (5)1048575答:(1)10000000、200、80(2)111111111、777、1FF(3)10000000000、2000、400(4)1111111111111111、177777、FFFF(5)11111111111111111111、3777777、FFFFF2. 将下列二进制数转化为十进制数和十六进制数:(1)1100110101B (2)101101.1011B答:(1)821、335(2)45.6875、2D.B3。
写出下列数的原码、反码、补码:15、-20、—27/32答:(1)00001111、00000000、00001111(2)10010100、11101011、11101100(3)1。
1101100、1。
0010011、1.00101004. 16位无符号定点整数的数值表示范围为多少?8位补码的表示范围是多少?16位补码的表示范围是多少?答:0~65535、—128~127、—32768~327675.1968年Dijkstra提出结构化程序设计的思想的原因是什么?简要回答结构化程序设计的经典定义.答:结构化程序设计概念的提出主要是源于程序结构的层次性与模块化使得构造出来的软件具有良好的可理解性和可维护性,随着软件规模的扩大与复杂性的提高,程序的可维护性成为程序设计者们关注的重要问题之一。
如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。
6.C程序在内存中存储在哪儿?计算机的内存空间是如何分区的?分区存放不同类型的数据的目的是什么?答:C语言程序属于应用程序,程序代码本身存放在应用程序区,程序运行时处理的数据存放在应用程序数据区。
计算机的内存空间主要分为3个区:系统程序区、应用程序区和数据区,其中数据区又分为系统程序数据区和应用程序数据区两类。
C语言作业答案
C语言作业答案一、选择题1、运行以下程序,如果从键盘上输入5,则输出结果是C 5void main(){ int x;scanf("%d",&x);iIf(x<=5) printf("%d",x);else printf("%d",x++);}2、若执行以下程序时从键盘上输入9,则输出结果是C 9main(){int n;scanf("%d",&n);if(++n<10) printf("%d\n",n);else printf("%d\n",--n);}3、若a、b、c1、c2、x、y均是整形变量,正确的switch语句是Dswitch(a-b){default:y=a*b;break;case 3:case 10:y=a-b;break;}4、若变量c为char类型,能正确判断出c为小写字母的表达式是D (c>='a')&&(c<='z')5、有如下程序main(){int x=1,a=0,b=0;switch(x){case 0:b++;case 1:a++;case 2:a++;b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是A a=2 b=16、有如下程序:main(){float x=2.0,y;if(x<0.0) y=0.0;else if(x<10.0) y=1.0/x;else y=1.0;printf("%f\n",y);}该程序的输出结果是C 0.5000007、若输入B,以下程序的运行结果为C >=60<60error main(){ char grade;scanf("%c",&grade);switch(grade){case 'A':printf(">=85");case 'B':case 'C':print(">=60");case 'D':printf("<=60");default:printf("error");}}}8、以下不正确的语句为C if(x=y)&&(x!=0) x+=y;9、以下程序输出结果为B 2main(){int x=2,y=-1,z=2;if(x<y)< p="">if(y<0) z=0;else z+=1;printf("%d\n",z);}10、以下程序输出结果为C、10main(){int a=-1,b=1,k;if((++a<0)&&(b--<=0))printf(“%d%d\n”,a,b);elseprintf(“%d%d\n”,b,a);}11、当a=1,b=3,c=5时,执行下面一段程序后,x的值为B 2 if(a<b)< p="">if(celse if(a<c)< p="">if(belse x=3;else x=6;else x=7;12、有如下程序段int a=14,b=15,x;char c='A';x=(a&&b)&&(c<'B');执行该程序段后,x的值为D 113、有如下程序段int score=5;switch(score){case 5:printf("very good!");case 4:printf("Good!");default:printf("data error!");}程序输出结果为D Very good! Good! Data error!14、有如下程序main(){int a=10,b=4,c=3;if(aif(aprintf("%d,%d,%d\n",a,b,c);}运行后的输出结果是D 10,4,315、下列关于switch语句和break语句的说法中,只有B 在switch语句中可以根据需要使用或不使用break语句。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
No.: Name:第1讲C语言概述注:本系列习题中符号表示一串字符中的空格,符号表示下划线,符号ê表示换行回车,即键盘上Enter键。
一、选择题1. 一个C程序的执行是从A 。
A) 本程序main函数开始,到main函数结束B) 本程序文件第一个函数开始,到最后一个函数结束C) 本程序文件第一个函数开始,到本main函数结束D) 本程序main函数开始,到本程序文件最后一个函数结束2. 以下叙述不正确的是D 。
A) 一个C源程序必须包含一个main函数B) 一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数D) 在C程序中,注释说明只能位于一条语句的后面3. 以下叙述正确的是C 。
A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) 语言本身没有输入输出语句D) C程序的每行中只能写一条语句4. 一个C语言程序是由B 。
A) 一个主程序和若干个子程序组成B) 函数组成C) 若干过程组成D) 若干子程序组成5. 以下叙述中正确的是C 。
A) C语言比其他语言高级B) C语言可以不用编译就能被计算机识别执行C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D) C语言出现的最晚,具有其他语言的一切优点6. 下列叙述中正确的是D 。
A) C语言编译时不检查语法B) C语言的子程序有过程和函数两种C) C语言的函数可以嵌套定义D) C语言的函数可以嵌套调用7. 以下叙述中正确的是A 。
A) 构成C程序的基本单位是函数B) 可以在一个函数中定义另一个函数C) main函数必须放在其他函数之前D) 所有被调用的函数一定要在调用之前进行定义8. C语言规定,在源程序中,main函数的位置C 。
A) 必须在最开始B) 必须在系统调用的库函数的后面C) 可以任意D) 必须在最后9. 下列选项中不是结构化程序基本结构的是B 。
A) 顺序结构B) 分支结构C) 选择结构D) 循环结构10. 下列四组选项中,均不是C语言关键字的是A 。
A) define IF type B) getc char printfC) include case scanf D) while go pow11. 下列四组选项中,均是不合法的标识符的是B 。
A) W P 0 do B) b-a goto intC) float la0 A D) -123 abc TEMP12. 下列可用于C语言标识符的一组是B 。
A) void, define, WORD B) a3 b3, 123, CarC) For, -abc, IF Case D) 2a, DO, sizeof13. 以面的C程序中,错误的是D 。
A) main() B) main(){ int x,y,z; { int x,y,z;x=0;y=x-1; x=0;y=x+1;z=x+y;} z=x+y;}C) main() D) main(){ int x,z; { int x,y,z;int y; x=0;y=x+1;x=0;y=x+1; z=x+y,}z=x+y;}14. C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符C 。
A) 必须为字母B) 必须为下划线C) 必须为字母或下划线D) 可以是字母,数字和下划线中任一字符15. 下面各选项中,均是C语言标识符的选项组是B 。
A) 33 we auto B) 23 me 3ewC) 43 3e else D) ER -DF 32二、填空题1. 国际上C语言常见的三个标准是:标准C 、ANSI C 和ISO C 。
2. C语言源程序的文件格式为*.c和*.h 。
3. 请描述C程序中main函数的作用:接受系统调用,开始程序的执行,直至程序结束。
三、程序编写题(请在本页背面作答)1. 编写一个C程序,输出以下信息*******************************Very Good!*******************************2. 编写程序,实现求整数10、20和35的平均值(提示:注意给出的是三个整数,求出的平均值不是整数)1No.: Name:第2讲C语言基本数据类型一、选择题1. 若x、i、j、k都是int型变量,则计算下面表达式后,x的值为C 。
x=(i=4,j=16,k=32)A) 4 B) 16 C) 32 D) 522. 下列四组选项中,均是合法转义字符的是A 。
A) ‘\"’ ‘\\’ ‘\n’ B) ‘\’ ‘\017’ ‘\"’C) ‘\018’ ‘\f’ ‘xab’ D) ‘\\0’ ‘\101’ ‘xlf’3. 下面正确的字符常量是D 。
A) "c" B) ‘\\’’ C) ‘’ D) ‘K’4. 以下叙述不正确的是D 。
A) 在C程序中,逗号运算符的优先级最低B) 在C程序中,MAX和max是两个不同的变量C) 若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,b中的值不变D) 从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值5. 以下叙述正确的是C 。
A) 在C程序中,每行只能写一条语句B) 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C) 在C程序中,%是只能用于整数运算的运算符D) 在C程序中,无论是整数还是实数,都能被准确无误地表示6. 已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=‘A’+‘6’-‘3’后,c2的值为A 。
A) D B) 68 C) 不确定的值D) C7. sizeof(float)是B 。
A) 一个双精度型表达式B) 一个整型表达式C) 一种函数表达式D) 一个不合法的表达式8. 设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为C 。
A) 0~255 B) 0~32767C) 0~65535 D) 0~21474836479. 设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型D 。
A) float B) char C) int D) double10. 设以下变量均为int类型,则值不等于7的表达式是C 。
A) (x=y=6,x+y,x+1) B) (x=y=6,x+y,y+1)C) (x=6,x+1,y=6,x+y) D) (y=6,y+1,x=y,x+1)11. C语言中的基本数据类型包括B 。
A) 整型、实型、逻辑型B) 整型、实型、字符型C) 整型、字符型、逻辑型D) 字符型、实型、逻辑型12. 若变量已正确定义并赋值,以下符合C语言语法的表达式是B 。
A) a:=b+1 B) a=b=c+2C) int 18.5%3 D) a=a+7=c+b13. C语言中运算对象必须是整型的运算符是A 。
A) %= B) / C) = D) <=14. 若变量a,i已正确定义,且i已正确赋值,合法的语句是B 。
A) a==1 B) ++i; C) a=a++=5; D) a=int(i);15. int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是A 。
A) 2.500000 B) 2.750000C) 3.500000 D) 0.00000016. 在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是D 。
A) a=20000+20000; B) a=4000*10;C) a=30000+10000; D) a=4000L*10L;17. 设有int x=11;则表达式(x++*1/3)的值是A 。
A) 3 B) 4 C) 11 D) 1218. 下列数据中,不合法的C语言实型数据的是C 。
A) 0.123 B) 123e3 C) 2.1e3.5 D) 789.019. 若变量a是int类型,并执行了语句:a=‘A’+1.6;,则正确的叙述是D 。
A) a的值是字符CB) 不允许字符型和浮点型相加C) a的值是浮点型D) a的值是字符‘A’的ASCII值加上120. 设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是B 。
A) n=(n*100+0.5)/100.0 B) m=n*100+0.5,n=m/100.0C) n=n*100+0.5/100.0 D) n=(n/100+0.5)*100.021. 下面四个选项中,均是不正确的8进制数或16进制数的选项是D 。
A) 016 0x8f 018 B) 0abc 017 0xaC) 010 -0x11 0x16 D) 0a12 7ff -12322. 以下选项中,与k=n++完全等价的表达式是A 。
A) k=n,n=n+1 B) n=n+1,k=n C) k=++n D) k+=n+123. 下面均是合法整型常量的选项是A 。
A) 160 -0xffff 011 B) -0xcdf 01a 0xeC) -01 986012 0668 D) -0x48a 2e5 0x24. 假定x和y为double型,则表达式x=2,y=x+3/2的值是D 。
A) 3.500000 B) 3 C) 2.000000 D) 3.00000025. 以下变量x,y,z均为double类型且已正确赋值,不能正确表示数学式子x÷y÷z的C语言表达式是A 。
A) x/y*z B) x*(1/(y*z) C) x/y*1/z D) x/y/z26. 已知int k,m=1;执行语句k=-m++;后,k的值是A 。
A) -1 B) 0 C) 1 D) 227. 已知int m;float k;正确的语句是D 。
A) (int k)%m B) int(k)%mC) int(k%m) D) (int)k%m28. 不能进行++和--运算的数据类型为D 。
A) 指针B) 整型C) 长整型D) 常量2No.: Name:29. putchar函数可以向终端输出一个D 。
A) 整型变量表达式B) 实型变量值C) 字符串D) 字符或字符型变量值30. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。
字符串长度大于5,则输出按方式B ;如果字符串长度小于5,则输出按方式C 。
A) 从左起输出该字符串,右补空格B) 按原字符长从左向右全部输出C) 右对齐输出该字符串,左补空格D) 输出错误信息31. 阅读以下程序,当输入数据的形式为:25,13,10ê,则正确的输出结果为D 。