c语言题目及答案
c语言测试题目及答案
c语言测试题目及答案一、选择题(每题2分,共20分)1. 下列哪个关键字不是C语言的控制语句?A. ifB. switchC. whileD. loop答案:D2. C语言中,一个整型变量int占用的字节数是多少?A. 1B. 2C. 4D. 8答案:C3. 在C语言中,以下哪个运算符用于计算两个数的乘方?A. *B. /C. ^D. %答案:C4. 下列哪个函数用于计算一个数的绝对值?A. abs()B. max()C. min()D. pow()答案:A5. 在C语言中,以下哪个是正确的字符串字面量?A. "Hello World"B. 'Hello World'C. {"Hello World"}D. ["Hello World"]答案:A6. 在C语言中,以下哪个是正确的数组声明?A. int array[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};B. int array[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};C. int array = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};D. int array[10] = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9;答案:B7. 在C语言中,以下哪个是正确的函数声明?A. void myFunction(int x, int y);B. int myFunction();C. void myFunction(int x, int y) {}D. int myFunction(int x, int y);答案:A8. 在C语言中,以下哪个是正确的递归函数调用?A. func(5);B. func(func(5));C. func(func(5, 3));D. func(5, 3);答案:B9. 下列哪个是C语言中合法的变量名?A. 2variableB. variable-nameC. variable#nameD. variable_name答案:D10. 在C语言中,以下哪个是正确的结构体声明?A. struct Person { int age; char name[50]; };B. struct { int age; char name[50]; };C. Person { int age; char name[50]; };D. Person struct { int age; char name[50]; };答案:A二、填空题(每空2分,共20分)1. C语言中,用于定义一个函数的关键字是________。
大学c语言考试题库及答案
大学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语言题目及答案
考试题型一、单项选择题(30分)二、填空题(20分)三、阅读程序写结果(20分)四、编程序题(30)复习题一一、选择题1.下列说法中正确的是。
A.C语言程序由主函数和0个或多个函数组成B.C语言程序由主程序和子程序组成C.C语言程序由子程序组成D.C语言程序由过程组成2.执行语句“x=(a=3,b=a--)”后,x,a,b的值依次为。
A.3,3,2 B.3,2,2 C.3,2,3 D.2,3,23.设有int i=010,j=10;则printf("%d,%d\n",++i,j--); 的输出的是。
A.11,10 B.9,10 C.010,9 D.10,9 4.设a、b为字符型变量,执行scanf("a=%c,b=%c",&a,&b); 后使a为'A', b为'B',从键盘上的正确输入是。
A.'A' 'B' B.'A','B' C.A=A,B=B D.a=A,b=B5.已知int x=12, y=3;执行下述程序后,变量x的值是____。
do{ x/=y--;}while(x>y);A.1 B.2 C.3 D.程序运行有错误6.C语言中while和do-while循环的主要区别是。
A.do-while的循环体至少无条件执行一次B.while的循环控制条件比do-while的循环控制条件严格C.do-while允许从外部转到循环体内D.do-while的循环体不能是复合语句7.设x和y均为int型变量,则执行下面的循环后,y的值为。
for (y=1,x=1;y<=50;y++) {if (x>=10 ) break;if (x%2==1) {x+=5;continue;}x - =3;}A.2 B.4 C.6 D.88.以下正确的说法是____。
C语言全部题目及答案
C语言全部题目及答案Exercise 1: 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 itas e2-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” stateme nts.(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("This is my first program!");return 0;}#include<stdio.h>int main(){printf("This is my second program!"); return 0;} #include<stdio.h>int main(){printf("1");printf("2");printf("3");printf("4");return 0;}#include<stdio.h>int main(){printf("1234");return 0;}#include<stdio.h>int main(){printf("%d%d%d%d",1,2,3,4);return 0;}#include<stdio.h>int main(){float days,minutes;days = 15;minutes = days * 24 *60;printf("The numberof minutes in 15 daysare %f\n", minutes);return 0;}#include<stdio.h>int main(){floatminutes,hours;minutes = 180;hours = minutes / 60;printf("180 minutesequal to %fhours\n", hours);return 0;}#include<stdio.h>int main(){floatminutes,hours;minutes = 174;hours = minutes / 60;printf("174 minutesequal to %fhours\n", hours);return 0;}Exercise 2: Data Types and Arithmetic Operations1. You purchase a laptop computer for $889. The sales tax rate is 6 percent. Writeand 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.25Balance after one year: 6255ANSWER:#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>int main(){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 the numerical 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 the user whether it is an odd or even number.3.Write a program that reads in three integers and then determines and prints the largest in the group.ANSWER:#include<stdio.h> #include<stdio.h>int mai n() { int a; pri ntf ("P lea se ent er an int ege r num ber\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) and that 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 integers from 2 to 30. 3. A large chemical company pays its sales staff on a commission basis. They receive £200 per week plus 9% of their gross sales for that week. For example, someone#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)printf("Failed."); elseprintf("Error."); return 0; }#include<stdio.h> int main() {int a,b,c; printf("Please enter 3 integer numbers\n");printf("Then I'll tell you which is the largest\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)printf("%d is the largest",c); elseprintf("They're equal"); return 0; }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 salesfor the previous week, and print out t heir salary. Process one person’s figures at a time.Enter sales in pounds (-1 to end): 5000.00Salary is: 650.00Enter sales in pounds (-1 to end): 00.00Salary is: 200.00Enter sales in pounds (-1 to end): 1088.89Salary is: 298.00Enter sales in pounds (-1 to end): -1Optional:4. A mail order company sells five different products whose retail prices are shownin the following table:Product Number Retail Price (in pounds)1 2.982 4.503 9.984 4.495 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 pricefor 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; #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;}#include<stdio.h>int main()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){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;case 10: printf("October ");break;case 11: printf("November ");break;case 12: printf("December ");break;}printf("19%d",year);return 0;} {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;}Exercise 5: ‘for’ and ‘do … while” repetition statements1. Write a program which uses a do/while loop to print out the first 10 powersof 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 +....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 if the user enters ‘3’, then the program should calculate ? 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= 12*1= 2 2*2= 43*1= 3 3*2= 6 3*3= 9….9*1= 9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 ANSWER:#include<stdio.h> int main(){int a,b;a=0;b=1;do{a++;b=b*2;printf("%d",b); }while (a<=9);return 0;}#include<stdio.h> int main(){int a;for(a=2;a<=1024;a=a *2)printf("%d",a); return 0;} #include <stdio.h>int main(){double c,pie,p;int a,b,d,n;printf("Enterterms:");scanf("%d",&a);printf("Pie=");n=1;p=0;while(n<=a){if(n%2==0)b=-1;elseb=1;pie=(4.0*b)/(2.0*n-1.0);d=2*n-1;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;}#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(" ");for(b=1;b<=9-2*j;b++)printf("*");for(a=j;a>=1;a=a-1)printf(" ");printf("\n");row++;j--;}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++;j++;}return 0;}#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;}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 thefirst pair, the larger of the second pair and the larger of the third pair.Use a function to return the larger of each pair.3. A car park charges a £2.00 minimum fee to park for up to 3 hours, and anadditional £0.50 for each hour or part hour in excess of three hours. The maximum charge for any given 24-hour period is £10.00. Assume that no car parks for more than 24 hours at a time.Write a C program that will calculate and print the parking charges for each of 3 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:Car Hours Charge1 1.5 2.002 4.0 2.503 24.0 10.00TOTAL 29.5 14.50The program should use the function calculate_charges to determine thecharge for each customer.ANSWER:#include<stdio.h> #include<math.h> int main() { void round_to_nearest(float); float num; while (5) { printf("Please input a number:"); scanf("%f",&num); round_to_nearest(num); } return 0; } void round_to_nearest(float num1) { int near_integer; int small_integer=floor(num1); if (num1-small_integer>=0.5) near_integer=ceil(num1); else near_integer=floor(num1); printf("\nThe nearest integer of the number is:%d\n",near_integer); } #include<stdio.h> int main() { float larger_Number(float,float); float num1,num2,total=0; int a=0; while (a<3) {printf("Please input two numbers:"); scanf("%f%f",&num1,&num2); total=total+larger_Number(num1,num2); a=a+1; } 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("%f",num2); larger=num2; }printf("\n"); return (larger); }#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);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 integeras 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, and 0 if it is not.The 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:exponentbaseso 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 aninteger. 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:baseexponentso 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 aninteger. The function should make no calls to any math library functions.(Hint: the recursive step will use the relationship:base exponent= base . baseexponent - 1and the base case will be when exponent is 1 since : base 1= 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){ #include<stdio.h>int main(){int integerPower2(int,int);int base,exponent,result;printf("This program can calculate the power\n");printf("Enter a integer base number:\n"); scanf("%d",&base);printf("Enter a non-zero integer number as the exponent:\n");scanf("%d",&exponent);result=integerPower2(base,exponent);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;if (x==1)printf("It's even\n"); elseprintf("It's odd\n"); } 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 as the 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;a=1;for(i=1;i<=y;i++)a=x*a;return (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 (2 rows)(b) the whole array3.Use a single-subscripted array to solve the following problem. Read in 20 numbers, each of which is between 10 and 100, 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 10int grades[MAXGRADES];int i, total = 0;float average;for (i=0;i<MAXGRADES;i++){ printf("Enter a number:");scanf("%d",&grades[i]);}printf("\nThe average of the numbers\n"); #include<stdio.h>int main(){#define MAXNUM 5int number[MAXNUM];int i,j,a;printf("Please enter 5 numbers between 10 and 100\n");for (i=0;i<MAXNUM;i++)scanf("%d",&number[i]);a=0;for(i=0;i<MAXNUM;i++){ for(j=0;j<i;j++)for (i=0;i<MAXGRADES;i++) { printf("%d",grades[i]); total+=grades[i];}average = total/10.0;printf("is %f\n",average); return 0;} { if(number[i]==number[j]) a++;}if(a==0)printf("%d",number[i]);a=0;}return 0;}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];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;}//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]); //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++)printf("The four strings in reverse order is :\n");for(i=3;i>=0;i--){ printf("%s",four[i]);}return 0;} 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--){printf("%c",four[i][j]);} printf(" ");}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.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 (用一个函数)to findand 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 eighth members of the arrayfor (i=1;i<8;i=i+2)printf("%f",*(num+i));//second, print out the sum of the first,third,fifth and seventhfloat total;for (i=0;i<8;i=i+2)total = total+*(num+i);printf("\nthe total of four numbers are %f",total);return 0;} #include<stdio.h>void SingleFunction(int *,int *);int main() {int num[6];int i;printf("Please input 6 numbers:\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++){ if(maxnum < *(max+i))maxnum = *(max+i);}printf("The max is: %d\n",maxnum);for(i=0;i<6;i++){ if(minnum > *(min+i))minnum = *(min+i);}printf("The min is: %d",minnum);}。
c语言测试题目及答案精选
c语言测试题目及答案精选c语言测试题目及答案篇一(c语言)是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。
以下是我为大家搜寻整理的c语言测试题及答案解析,盼望能给大家带来关心!更多精彩内容请准时关注我们应届毕业生(考试)网!1.(a )是构成c语言程序的基本单位。
a、函数b、过程c、子程序d、子例程2.c语言程序从c 开头执行。
a、程序中第一条可执行语句b、程序中第一个函数c、程序中的main函数d、包含文件中的第一个函数3、以下说法中正确的是( c )。
a、c语言程序总是从第一个定义的函数开头执行b、在c语言程序中,要调用的函数必需在main( )函数中定义c、c语言程序总是从main( )函数开头执行d、c语言程序中的main( )函数必需放在程序的开头部分4.下列关于c语言的说法错误的是( b ) 。
a、c程序的工作过程是编辑、编译、连接、运行b、c语言不区分大小写。
c、c程序的三种基本结构是挨次、选择、循环d、c程序从main函数开头执行5.下列正确的标识符是(c)。
a、-a1b、a[i]c、a2_id、int t5~8题为相同类型题考点:标识符的命名规章只能由字母、数字、下划线构成数字不能作为标识符的开头关键字不能作为标识符选项a中的“-” ,选项b中“[”与“]”不满意(1);选项d中的int为关键字,不满意(3)6.下列c语言用户标识符中合法的是(b )。
a、3axb、xc、cased、-e2 e)union选项a中的标识符以数字开头不满意(2);选项c,e均为为关键字,不满意(3);选项d中的“-”不满意(1);7.下列四组选项中,正确的c语言标识符是( c )。
a、%xb、a+bc、a123d、123选项a中的“%” ,选项b中“+”不满意(1);选项d中的标识符以数字开头不满意(2)8、下列四组字符串中都可以用作c语言程序中的标识符的是( a)。
C语言经典编程100题(答案版)
C语言经典程序100题(答案版)【程序1】题目:企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。
注意定义时需把奖金定义成长整型。
2.程序源代码:1.#include"stdio.h"2.#include"conio.h"3.main()4.{5.long int i;6.int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;7.scanf("%ld",&i);8.bonus1100000*0.1;9.bonus2bonus1+100000*0.75;10.bonus4bonus2+200000*0.5;11.bonus6bonus4+200000*0.3;12.bonus10bonus6+400000*0.15;13.if(i<100000)14.bonus i*0.1;15.else if(i<200000)16.bonus bonus1+(i-100000)*0.075;17.else if(i<400000)18.bonus bonus2+(i-200000)*0.05;19.else if(i<600000)20.bonus bonus4+(i-400000)*0.03;21.else if(i<1000000)22.bonus bonus6+(i-600000)*0.015;23.else24.bonus bonus10+(i-1000000)*0.01;25.printf("bonus%d",bonus);26.getch();27.}【程序2】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
c语言试题及答案大全
c语言试题及答案大全一、选择题1. 下列关于C语言的说法中,正确的是:A. C语言是一种高级编程语言。
B. C语言可以被编译成机器语言执行。
C. C语言的语法和C++完全相同。
D. C语言不支持面向对象的编程。
答案:B. C语言可以被编译成机器语言执行。
2. C语言中,以下哪个是合法的标识符?A. 123abcB. abc_123C. intD. function()答案:B. abc_1233. 在C语言中,以下哪种循环结构是先判断条件后执行循环体?A. for循环B. while循环C. do-while循环D. switch语句答案:C. do-while循环二、编程题1. 编写一个C程序,计算并输出1到n之间所有整数的和。
其中,n由用户输入。
答案:#include <stdio.h>int main() {int n;int sum = 0;printf("请输入一个整数n:");scanf("%d", &n);for (int i = 1; i <= n; i++) {sum += i;}printf("1到%d之间所有整数的和为%d\n", n, sum);return 0;}2. 编写一个C程序,判断一个整数是否为素数。
素数是指除了1和自身外,无法被其他整数整除的整数。
答案:#include <stdio.h>#include <stdbool.h>bool is_prime(int num) {if (num <= 1) {return false;}for (int i = 2; i * i <= num; i++) {if (num % i == 0) {return false;}}return true;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (is_prime(num)) {printf("%d是素数\n", num);} else {printf("%d不是素数\n", num);}return 0;}三、应用题1. 假设有一个班级的学生信息如下:学号姓名年龄性别101 张三 18 男102 李四 17 女103 王五 16 男请根据上述学生信息,编写一个C程序,输出学生的平均年龄。
C语言所有题目以及答案
C语言所有题目以及答案一.判断题1.关系运算符<=和==具有相同的优先级。
氮气。
7&3+12的值为15 n3.在turboc中,整型数据在内存中占2个字节。
y4.C语言本身不提供输入输出语句,输入输出操作由函数实现。
y5。
Char[]=“verygood”:为字符串数组赋值是一种合法声明。
y6。
定义宏时,宏名称必须用大写字母表示。
n7。
如果inti=10,则j=2;然后执行I*=j+8;最后一个I的值是28n8。
语句scanf(“%7.2f”和&A);是一种合法的扫描功能。
n9。
C语言中%运算符的操作数必须是整数。
Y10.字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面。
n11.a=(b=4)+(c=6)是一个合法的赋值表达式。
y12.整数-32100可分配给int和Longint变量。
y13。
报表printf(“%F%%”,1.0/3);输出为0.333N14.若有宏定义:#defines(a,b)t=a;a=b;b=t由于变量t没有定义,所以此宏定义是错误的。
n15.x*=y+8等价于x=x*(y+8)y16.如果inti=10,则j=0;如果(J=0)I++,则执行该语句;我--;I的值是11 n17。
C语言只能逐个引用数组元素,而不能一次引用整个数组。
y18。
如果a=3、B=2、C=1,则关系表达式“(a>B)==C”的值为“真”。
y19。
C语言的所有函数都是外部函数。
Y20.如果想使一个数组中全部元素的值为0,可以写成inta[10]{0*10};n21.定义和声明(如有):inta;查克;漂浮物;scanf(“%d、%c、%f”、&a、&c、&f);如果你通过键盘输入:10,a,12.5,那么a=10,C=a',f=12.5y22.如果有一个字符串,其中第十个字符为‘\\n’,则此字符串的有效字符为9个。
c语言题目及答案
注意:所有答案都要写在答题卡上一、单项选择题(20分,每题2分)1.执行下列程序段后,正确的结果是(B)int k, a[3][3] = {1,2,3,4,5,6,7,8,9};for(k=0; k<3; k++)printf(“%2d”, a[k][k]);A) 1 2 3 B) 1 5 9 C) 1 4 7 D) 3 6 92.若a是int类型变量,则计算表达式a=25/3%3的值是:(B)A)3 B)2 C)1 D)03.下面正确的字符常量是:(C)A)“c” B)‘\\’’ C)‘W’ D)‘’4.C语言中,运算对象必须是整型的运算符是:(B)A)% B)/ C)* D)+5.数字字符0的ASCII值为48,若有以下程序main(){char a='1', b='2';printf("%c,",b++);printf("%d\n",b-a);}程序运行后的输出结果是。
(B)A)3,2 B)50,2 C)2,2 D)2,50 6.以下语句或语句组中,能正确进行字符串赋值的是。
(D)A)char *sp;*sp="right!"; B)char s[10];s="right!";C)char s[10];*s="right!"; D)char *sp="right!";7.for(i=0;i<10;i++)if(i〈=5〉break;则循环结束后i的值为(B)A)0 B)1 C)5 D)108.执行下列程序段后,正确的结果是(C)char x[8] = {8,7,6,5,0,0}, *s;s = x+1;printf(“%d\n”, s[2]);A) n B) 0 C) 5 D) 69.C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是:AA)单向值传递B) 地址传递C) 相互传递D) 由用户指定方式10.设有数组定义:char str[]=”China”;则下面的输出为(C)printf(“%d”,strlen(str));A)4 B)5 C)6 D)7二、填空题(30分,每空2分)1.下列程序段的输出结果是 3 。
c语言考试题及答案
c语言考试题及答案C语言考试题及答案一、选择题(每题2分,共20分)1. 下列哪个是C语言的合法标识符?A. 3variableB. variable3C. variable-3D. variable#3答案:B2. C语言中,哪个关键字用于定义一个函数?A. functionB. defineC. voidD. int答案:D3. 在C语言中,以下哪个是正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello\nWorld"D. "Hello\tWorld"答案:A4. C语言中,以下哪个是正确的数组声明?A. int array[10];B. int [10] array;C. int array = 10;D. int 10[array];答案:A5. 在C语言中,哪个运算符用于求两个数的余数?A. %B. /C. //D. ÷答案:A二、填空题(每空2分,共20分)1. C语言中,用于定义变量的关键字是________。
答案:int, float, double, char等2. 一个C程序的执行从________函数开始。
答案:main3. 在C语言中,________运算符用于连接字符串。
答案:+4. 在C语言中,________关键字用于声明一个数组。
答案:array5. 一个C程序中,________语句用于结束程序的执行。
答案:return三、简答题(每题10分,共20分)1. 请简述C语言中指针的概念及其用途。
答案:指针是一种变量,它存储了另一个变量的内存地址。
指针的主要用途包括动态内存分配、数组操作、函数参数传递等。
2. 解释C语言中的递归函数,并给出一个简单的例子。
答案:递归函数是指在函数内部调用自身的函数。
递归通常用于解决可以分解为相同问题的子问题的问题,如阶乘计算、斐波那契数列等。
c语言经典题目;带答案
第1题:输入3个整数,输出其中最大数。
样例输入:1 3 2样例输出:3第2题:编写程序,输入一个数,判断其是否是3或7的倍数,分4种情况输出:是3的倍数但不是7的倍数时输出1,不是3的倍数但是7的倍数时输出2,是3的倍数也是7的倍数时输出3,不是3的倍数也不是7的倍数时输出4。
样例输入:21样例输出:3第3题:输入两个整数m和n,判断m能否被n整除,若不能整除,输出NO,否则输出YES。
样例输入:6 3样例输出:YES第4题:有一分段函数如下,请编写程序,输入x值,输出y值。
样例输入:-1样例输出:-1.84147样例输入:6.5样例输出:23204.8样例输入:12样例输出:0.048737第5题:输入一个正整数n,如果n能被3整除,则输出YES和n的立方,否则输出NO 和n的平方。
样例输入:3样例输出:YES 27样例输入:5样例输出:NO 25第1题:#include<iostream.h>int main(void){float a,b,c;cin>>a>>b>>c;if(a>b&&a>c)cout<<a;else if(b>a&&b>c) cout<<b;else cout<<c;return 0;}第2题:#include<iostream.h> int main(void){int a;cin>>a;if(a%3==0){if(a%7==0)cout<<"3"; else cout<<"1";}else{if(a%7==0)cout<<"2"; else cout<<"4";} return 0;}第3题:#include<iostream.h> int main(void){int m,n;cin>>m>>n;if(m%n==0)cout<<"YES";else cout<<"NO"; return 0;}第4题:#include<iostream.h> #include<math.h>int main(void){float x,y;cin>>x;if(x<0)y=x*x+2/x+sin(x); else if(x<10)y=2*pow(x,5)-cos(x);else y=1/sqrt(3*x*x-11);cout<<y;return 0;}第5题:#include<iostream.h>int main(void){int n,pf,lf;cin>>n;if(n%3==0){lf=n*n*n;cout<<"YES"<<" "<<lf;}else{pf=n*n;cout<<"NO"<<" "<<pf;}return 0;}第1题:输入一行字符,以字符0作为结束标志,输出这行字符对应的ASCII码值之和。
c语言编程题及答案
c语言编程题及答案1. 输入输出题题目:编写一个程序,要求从键盘输入两个整数,然后输出它们的和。
答案:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:\n");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("它们的和为:%d\n", sum);return 0;}```2. 条件语句题题目:编写一个程序,要求从键盘输入一个整数,判断它是否为正数、负数还是零,并输出相应的提示信息。
答案:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:\n"); scanf("%d", &num);if (num > 0) {printf("这是一个正数。
\n"); } else if (num < 0) {printf("这是一个负数。
\n"); } else {printf("这是零。
\n");}return 0;}```3. 循环语句题题目:编写一个程序,要求计算并输出1到100之间所有偶数的和。
答案:```c#include <stdio.h>int main() {int i, sum;sum = 0;for (i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("1到100之间所有偶数的和为:%d\n", sum);return 0;}```4. 数组题题目:编写一个程序,要求定义一个包含10个整数的数组,并逐个从键盘输入数组元素的值,然后对数组进行逆序输出。
C语言基础练习100题含标准答案
C语言基础练习100题含标准答案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, square;printf("请输入一个整数:");scanf("%d", &num);square = num * num;printf("该整数的平方为:%d\n", square);return 0;}4. 编写一个C语言程序,要求输出1到10的所有整数。
#include <stdio.h>int main() {int i;for (i = 1; i <= 10; i++) {printf("%d ", i);}printf("\n");return 0;}5. 编写一个C语言程序,要求输出1到10的所有整数的和。
#include <stdio.h>int main() {int i, sum = 0;for (i = 1; i <= 10; i++) {sum += i;}printf("1到10的所有整数的和为:%d\n", sum);return 0;}6. 编写一个C语言程序,要求输入一个字符串并输出该字符串。
c语言考试题及答案简单
c语言考试题及答案简单C语言是一种广泛应用于计算机科学和软件开发领域的编程语言,熟练掌握C语言对于计算机专业学生来说至关重要。
为了帮助大家巩固对C语言的理解和应用能力,以下是一些简单的C语言考试题目及对应答案。
1. 请写出C语言中的关键字有哪些?答:C语言中的关键字包括auto、break、case、char、const、continue、default、do、double、else、enum、extern、float、for、goto、if、int、long、register、return、short、signed、sizeof、static、struct、switch、typedef、union、unsigned、void、volatile、while等。
2. C语言中如何定义一个整型变量并将其初始化为5?答:在C语言中,可以使用int关键字来定义一个整型变量,并使用赋值运算符“=”将其初始化为5。
具体代码如下:```cint num = 5;```3. 请解释C语言中的运算符和表达式。
答:C语言中的运算符用于执行各种数学和逻辑运算,而表达式是由运算符、操作数和运算符优先级组成的。
运算符可以分为算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符等。
表达式是计算结果的指令,可以根据需要组合运算符和操作数来实现不同的计算。
4. 如何在C语言中实现条件判断?答:在C语言中,可以使用if语句来实现条件判断。
if语句的语法结构如下:```cif (条件){// 条件为真时执行的代码}else{// 条件为假时执行的代码}```5. 请写出一个用循环语句计算1到100累加和的程序。
答:以下是一个使用循环语句计算1到100累加和的程序。
```c#include <stdio.h>int main(){int sum = 0;int i;for (i = 1; i <= 100; i++){sum += i;}printf("1到100的累加和为:%d\n", sum);return 0;}```通过以上例子,我们可以看到循环语句的使用,以及变量的定义和初始化,以及累加和的计算方法。
c语言c语言考试题库及答案
c语言c语言考试题库及答案一、选择题1. 在C语言中,用于定义变量的关键字是:A. defineB. varC. intD. let答案:C2. 下列哪个是C语言中的合法标识符?A. 2variableB. variable2C. variable-twoD. variable#答案:B3. 在C语言中,哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C4. C语言中,以下哪个是正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello\nWorld"D. "Hello\tWorld"答案:A5. 以下哪个是C语言中的控制语句?A. ifB. switchC. both A and BD. none of the above答案:C二、填空题6. 在C语言中,一个基本的程序结构包括____、____和____。
答案:预处理指令;函数定义;语句7. 一个C语言程序的执行从____函数开始。
答案:main8. 在C语言中,使用____关键字可以定义一个函数。
答案:void 或其他数据类型9. 一个C语言数组的元素默认情况下是按照____顺序存储的。
答案:连续10. C语言中的____运算符用于连接字符串。
答案:+三、简答题11. 解释C语言中指针的概念。
答案:指针是一种变量,它存储了另一个变量的内存地址。
通过指针,可以直接操作内存地址中的数据,实现数据的间接引用。
12. 描述C语言中结构体的定义和使用。
答案:结构体是一种用户自定义的数据类型,它允许将多个不同类型的变量组合成一个单一的类型。
定义结构体时,使用struct关键字,然后定义结构体的名称和成员。
使用结构体时,可以创建结构体变量,并通过点(.)运算符访问其成员。
四、编程题13. 编写一个C语言程序,计算并输出1到100的整数之和。
c语言考试试题及答案
c语言考试试题及答案一、选择题1. 在C语言中,下列哪个关键字用于声明一个变量的名称?A. defineB. intC. printfD. scanf答案:B2. 函数的返回类型可以是下列哪种类型?A. intB. floatC. charD. all of the above答案:D3. 下列哪个运算符用于访问结构体变量的成员?A. .B. ->C. :D. ,答案:A4. 文件指针是下列哪种类型?A. FILEB. pointerC. file*D. fp答案:A5. 下面哪个循环结构在执行前先判断条件,再决定是否执行循环体?A. forB. whileC. do-whileD. switch答案:B二、填空题1. C语言中,用于定义常量的关键字是____。
答案:const2. 在C语言中,用于输出结果到控制台的函数是____。
答案:printf3. C语言中,用于读取用户输入的函数是____。
答案:scanf4. 下面是一个二维数组的声明方式:int arr[3][4];那么该数组的元素个数是____。
答案:125. C语言中,用于在循环执行过程中跳过当前迭代的关键字是____。
答案:continue三、编程题请编写一个程序,实现从键盘输入两个整数,然后输出它们的和。
```c#include <stdio.h>int main(){int num1, num2, sum;printf("请输入第一个整数:");scanf("%d", &num1);printf("请输入第二个整数:");scanf("%d", &num2);sum = num1 + num2;printf("两个整数的和为:%d\n", sum);return 0;}```以上是一道简单的示例题目,通过该题目可以熟悉C语言的基本输入输出、变量声明和运算符等基础知识。
c语言期末考试试题及答案
c语言期末考试试题及答案考试题目一:填空题(共15空)1. C语言是一种_________型的编程语言。
2. 在C语言中,用来表示“或”的运算符是______。
3. 在C语言中,用于定义宏的关键字是______。
4. 函数调用时,参数的传递方式是______传递。
5. 在C语言中,表示真值的关键字是______。
6. 在使用scanf函数读取字符时,可以使用______修饰符。
7. 在C语言中,用于循环控制的关键字是______。
8. C语言中,数据类型的长度由______决定。
9. 在C语言中,用于将浮点数转换为整数的函数是______。
10. C语言中的结构体可以包含不同______类型的成员。
11. 在使用printf函数进行格式化输出时,%d用来输出______类型的数据。
12. 在C语言中,用于断开当前循环并开始下一次循环的关键字是______。
13. 在C语言中,用于定义常量的关键字是______。
14. C语言中,用于定义无符号整型变量的关键字是______。
15. 使用指针变量时,可以通过______操作符获得指针所指向的地址的值。
答案:1. 结构化2. ||3. #define4. 值5. true6. %c7. for8. 编译器9. ceil10. 数据11. 整数12. continue13. const14. unsigned15. *(星号)考试题目二:判断题(共10题)1. C语言是一种面向对象的编程语言。
(×)2. 在C语言中,数组的下标从0开始。
(√)3. C语言中,变量的作用域可以超出其声明的块。
(×)4. 在C语言中,可以通过malloc函数为变量分配动态内存。
(√)5. 在C语言中,switch语句可以用来实现嵌套循环。
(×)6. C语言只支持单继承。
(×)7. 在C语言中,函数可以有多个返回值。
(×)8. C语言中,使用void*类型指针可以指向任意类型的数据。
c语言试题目及答案
c语言试题目及答案1. 选择题1) 在C语言中,下面哪个选项是无效的标识符?A. myVarB. _varC. 3varD. var3正确答案:C. 3var2) 下面哪行代码可以正确输出字符串 "Hello, World!"?A. printf("Hello, World!");B. print("Hello, World!");C. console.log("Hello, World!");D. cout << "Hello, World!";正确答案:A. printf("Hello, World!");3) 在C语言中,下面哪个数据类型可以用来存储小数值?A. intB. charC. floatD. bool正确答案:C. float2. 填空题1) 下划线是在C语言中用作什么目的?答案:下划线是用来连接多个单词以创建一个标识符。
2) 在C语言中,用于存储单个字符的数据类型是__char__。
3) C语言中,用于声明变量的关键字是__int__。
3. 程序分析题给定以下C语言程序,请写出代码中缺失的部分:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两数之和为:%d", sum);return 0;}```程序分析:上述代码是一个简单的C语言程序,用于接收用户输入的两个整数,并计算它们的和。
缺失部分为```printf("两数之和为:%d", sum);```中的换行符。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
注意:所有答案都要写在答题卡上一、单项选择题(20分,每题2分)1.执行下列程序段后,正确的结果是(B)int k, a[3][3] = {1,2,3,4,5,6,7,8,9};for(k=0; k<3; k++)printf(“%2d”, a*k+*k+);A) 1 2 3 B) 1 5 9 C) 1 4 7 D) 3 6 92.若a是int类型变量,则计算表达式a=25/3%3的值是:(B)A)3 B)2 C)1 D)03.下面正确的字符常量是:(C)A)“c” B)‘\\’’ C)‘W’ D)‘’4.C语言中,运算对象必须是整型的运算符是:(B)A)% B)/ C)* D)+5.数字字符0的ASCII值为48,若有以下程序main(){char a='1', b='2';printf("%c,",b++);printf("%d\n",b-a);}程序运行后的输出结果是。
(B)A)3,2 B)50,2 C)2,2 D)2,50 6.以下语句或语句组中,能正确进行字符串赋值的是。
(D)A)char *sp;*sp="right!"; B)char s[10];s="right!";C)char s[10];*s="right!"; D)char *sp="right!";7.for(i=0;i<10;i++)if(i〈=5〉break;则循环结束后i的值为(B)A)0 B)1 C)5 D)108.执行下列程序段后,正确的结果是(C)char x[8] = {8,7,6,5,0,0}, *s;s = x+1;printf(“%d\n”, s*2+);A) n B) 0 C) 5 D) 69.C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是:AA)单向值传递B) 地址传递C) 相互传递D) 由用户指定方式10.设有数组定义:char str[]=”China”;则下面的输出为(C)printf(“%d”,strlen(str));A)4 B)5 C)6 D)7二、填空题(30分,每空2分)1.下列程序段的输出结果是 3 。
inti=19, j;j=i%4;printf(“% d”, j);2.已知fun1函数的功能是将三个数按由大到小的顺序调整后依次放入a,b,c三个变量中,其中a存放最大的数,利用fun2函数填空完成此功能。
void fun2(int *x,int *y){int t;t=*x; *x=*y; *y=t;}void fun1(){int a=20, b=30, c=25;if(c>b) fun2(__&c,&b____);if(a<c) fun2(__&a,&c____);if(a<b) fun2(__&a,&b____);}3.已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>,则输出结果是 1 B 。
#include <stdio.h>main(){chara,b;a=getchar();scanf("%d",&b);a=a-'A'+'0';b=b*2;printf("%c %c\n",a,b);}4.以下程序运行后的输出结果是4 3 5 。
main(){int a=3,b=4,c=5,t=99;if(b<a && a<c) { t=a;a=c;c=t;}if(a<c && b<c) {t=b;b=a;a=t;}printf("%d %d %d\n",a,b,c);}5.若已知a=10,b=20,则表达式!a<b的值是___0______6.若s是unsigned int型变量,则下面表达式的值是__1__。
s%2+(s+1)%27.下面程序将字符数组a复制到字符数组b中。
main(){char a[]="I am a boy.",b[20];inti;for(i=___0____;a[i]!='\0';i++){__b[i]=a[i]___________;}__b*i+=’\0’__;}8.若有int a[3][2] = {{1},{3,2},{4,5}};,则a[1][1]的值是 2 。
9.有以下程序,执行后输出结果是0 。
main( ){int t=1,i=5;for(;i>=0;i--) t*=i;printf("%d\n",t);}10.在循环语句中,break语句的作用是是用来跳出当前一层循环的,continue语句的作用是终止本次循环。
三、写出程序的运行结果(30分,每题10分)1.写出程序运行后的输出结果main(){int a=1,b;for(b=1;b<=10;b++){if(a>=8) break;if(a%2==1){a+=5;continue;}a-=3;}printf("%d\n",b);}输出结果:b=42.写出程序运行后的输出结果#include <string.h>char *ss(char *s){returns+strlen(s)/2;}main( ){ char *p,*str="abcdefgh";p=ss(str);printf("%s\n",p);}输出结果:efgh3.写出程序运行后的输出结果int f1(intx,int y){return x>y?x:y;} int f2(intx,int y){return x>y?y:x;} main(){int a=4,b=3,c=5,d=2,e,f,g;e=f2(f1(a,b),f1(c,d));f=f1(f2(a,b),f2(c,d));g=a+b+c+d-e-f;printf("%d,%d,%d\n",e,f,g);}4,3,7四、编程(完形填空)(20分,每题10分)1.以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:yes!,否则函数返回字符串:no!,并在主函数中输出,所谓回文即正向与反向的拼写都一样,例如:adgda。
请填空。
#include <stdio.h>#include <string.h>char *huiwen(char *str){char *p1,*p2;inti,t=0;p1=str;p2=_____ str+strlen(str)-1____; str+strlen(str)for(i=0;i<=strlen(str)/2;i++)if(*p1++!=*p2--){t=1;break;}if(_t==0或!t_ ) t==0return("yes!");elsereturn("no!");}main(){charstr[50];printf("Input:");scanf("%s",str);printf("%s\n",___ huiwen(str) _____ ); huiwen(srt)}2.下面程序完成以下功能:(1)trans()函数将二维数组a进行转置,即行列互换,如下图所示;1 2 3 4 1 2 5 72 4 6 9 2 4 8 15 8 9 7 36 9 67 1 6 21 4 9 7 21转置前转置后(2)findmin()函数求新数组中对角线(左上到右下)上的最小元素的值;请将程序填写完整。
void trans(int b[4][4]) /*转置函数*/{inti,j,temp;for(i=0;i<4;i++)for(j=_0__;j<4;j++){temp=b[i][j];b[i][j]=b[j][i];b[j][i]=temp;}intfindmin(int b[4][4]) /*求对角线上最小的元素*/ {intmin,i,j;min=_______;for(i=0;i<4;i++){if(__b[i][i]<min___)min=_ b[i][i]_ ___;}return min;}main(){inti,j;int a[4][4],min;for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);trans(a);printf(“the result is:”);for(i=0;i<4;i++){for(j=0;j<4;j++)printf("%5d",a[i][j]);printf("\n");min=_findmin(a)__;printf("the min is%5d\n",min);}2份注意:所有答案都要写在答题卡上一、单项选择题(20分,每题2分)1.下面那个变量是合法的。
(A)A) _a_2 B) 12a C) a.3b D) _3-22.不能用于实型数据的运算符是:(A)A) % B) / C) * D) +3.下面正确的字符串常量是:(B)A) …1+2=3‟ B) “1+2 = 10” C) [abcde] D) {1234567} 4.程序段inti, j;i=10;j = i--;printf("%d, %d", i, j);的输出应为:(B)A) 9,9 B) 9,10 C) 10,9 D) 10,105.程序段inti;for(i=0;i<=10;i++){if(i==20)break;}printf("%d",i)的输出应为:(D)A) 21 B) 20 C) 10 D) 116.设有数组定义:char array[]=”Beijing”;则数组array所占的存储空间为:(B)A) 7个字节 B) 8个字节 C) 9个字节 D) 10个字节7.以下说法正确的是(C)A) C程序总是从第一个定义的函数开始执行B) 在C程序中,要调用的函数必须在main()函数中定义C) C程序总是从main()函数开始执行D) C程序的main()函数必须放在程序的开始部分8.程序段int *p, a=1;p=&a;*p=10;a的值为:(C)A) 1 B) 10 C) 不能确定 D) 119.以下定义语句中,错误的是 (D)A) int a[]={1,2}; B) char *a[3];C) char s[10]="test"; D) int n=5,a[n];10.假定int类型变量占用两个字节,有定义:int x[10]={0,2,4};,则数组x 在内存中所占字节数是(D)A) 3 B) 6 C) 10 D) 20二、填空题(30分,每空2分)1.for(表达式1;表达式2;表达式3)语句组的执行顺序是先求解表达式1、再_计算表达式2__、如果成立则执行_一次for 循环体___、然后__计算表达式3_2.表达式:765%2=____1___,765/2=___382____。