15系2008-2009学年第二学期c语言期末考题及答案
2008-2009(2)C语言程序设计试卷参考答案及评分标准
试卷参考答案及评分标准一、三、程序阅读题(每空3分,共30分)五、编程题参考答案(第1小题8 分,第2小题12分,共 20分)1. #include <stdio.h>#define n 5int MaxMin(int a[], int n){int mini = maxi = 0;int i;for(i=1; i<5; i++){if( a[i] < a[mini] )mini = i;if( a[i] > a[maxi])maxi = i;}printf("最小值是:%3d\n",a[mini]);printf("最大值是:%3d\n",a[maxi]); +3t = a[maxi];a[maxi] = a[mini] ;a[mini] = t;printf("调整后的数为: ");for(i = 0; i < 5; i++)printf("%d ", a[i]);printf("\n");return 0; +3}int main(){int a[n], t, i, maxi, mini;for(i=0; i<n; i++)scanf("%d", &a[i]);MaxMin(a,n); +2return 0;}2. #include <stdio.h>#include <string.h>#include <stdlib.h>#define N 100struct Student{int number;char name[10];int age;}stu[N],temp; +3 int main(){int i,k,j;FILE *fp;for( i =0; i < N; i++){scanf("%s%d",stu[i].name, &stu[i].age); +2 }for(i=0;i<N-1;i++){k=i;for(j=i+1;j<N;j++)if(strcmp(stu[k].name,stu[j].name)>0) k=j;if(k!=i){temp.age=stu[i].age;strcpy(,stu[i].name);stu[i].age=stu[k].age;strcpy(stu[i].name,stu[k].name);stu[k].age = temp.age;strcpy(stu[k].name,); +4 }}if ( (fp = fopen("studentnumber.txt","w")) == NULL){printf("Can not create the output file\n");exit(1); +2 }else{for ( i = 0; i < N; i++)fprintf(fp,"%10d%10s%5d\n",i+1,stu[i].name,stu[i].age);}fclose(fp); +1return 0;}。
09年C语言试题及答案
09年C语言试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,错误的是:A. C语言是一种高级语言B. C语言的源代码不能直接在计算机上运行C. C语言支持结构化编程D. C语言不支持面向对象编程答案:D2. 在C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A3. 下列关于指针的描述中,正确的是:A. 指针可以存储地址B. 指针可以存储数据C. 指针不能存储地址D. 指针不能存储数据答案:A4. 在C语言中,用于定义一个函数的关键字是:A. intB. voidC. returnD. function答案:A5. 下列关于数组的描述中,错误的是:A. 数组可以存储相同类型的元素B. 数组的索引从0开始C. 数组的大小在定义时确定D. 数组的大小可以在运行时改变答案:D6. 在C语言中,用于控制循环的关键字是:A. ifB. whileC. forD. switch答案:C7. 下列关于文件操作的描述中,错误的是:A. 文件操作需要使用文件指针B. 文件操作需要包含stdio.h头文件C. 文件操作不需要使用文件指针D. 文件操作需要使用fclose函数关闭文件答案:C8. 在C语言中,用于定义一个枚举类型的关键字是:A. enumB. structC. unionD. typedef答案:A9. 下列关于函数参数的描述中,错误的是:A. 函数参数可以是常量B. 函数参数可以是变量C. 函数参数可以是数组D. 函数参数不可以是指针答案:D10. 在C语言中,用于定义一个联合体的关键字是:A. unionB. structC. enumD. typedef答案:A二、填空题(每题2分,共10分)1. C语言中,用于定义变量的关键字是________。
答案:int2. 在C语言中,用于定义一个宏的预处理命令是________。
C语言程序设计期末考试试题及答案
C语言程序设计试题(2008 /2009 学年第二学期)一.选择题(满分30分,每题2分)1.若a、b、c都定义为int类型且初值为0,则以下不正确的赋值语句是 D 。
A. a=b=c+8;B. a+=y+3;C. c++;D. a+b+c2. 已知int j,i=1;执行语句“j=i++;”后,变量i的值是 B 。
A. 1B. 2C. –1D. -23.执行下面程序:#include "stdio.h"void main(){int a=1,b=2,c=3;c=(a+=a+2),(a=b,b+3);printf(“%d,%d,%d”,a,b,c);}则输出结果是: A 。
A. 2,2,4B. 4,2,3C. 5,5,3D. 4,2,54.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为 D 。
A. a< >0B. !aC. a=0D. a5. for (j=0;j<11;j++);循环结束后,j的值是 B 。
A. 12B. 11C. 10D. 96. C语言中函数返回值的类型由 D 决定的。
A. return语句中的表达式类型B. 调用该函数的主调函数的类型C. 调用函数时临时决定D. 定义函数时所指定的函数类型7. 下列说法中正确的是 B 。
A 在调用用户自定义函数时,必须对其进行声明。
B 函数可以返回一个值,也可以什么值也不返回。
C 说明函数时,必须明确参数的类型和返回值。
D 在程序设计中空函数没有什么作用。
8. 若int i=10;执行下列程序后,变量i的正确结果是 D 。
switch ( i ){case 0: i+=1;case 10: i+=1;case 11: i+=1;default: i+=1;}A. 10B. 11C. 12D. 139. 下列语句中不正确的字符串赋值或初始化的是 C 。
A. char str[10]={"strings"}; B.char str[8]={'s','t','r','i','n ','g','s','\0'};C. char str[10]; str= "strings";D. char str[]= "strings";10. 有如下程序:#include <stdio.h>void main(){int a=1,b=0,c=0;if (a<b)if (b<0) c=0;else c++;printf (“%d\n”,c);}该程序的运行结果是 D 。
c语言期末复习试题附答案
c语言期末复习试题附答案一、选择题(每题2分,共20分)1. C语言中,下面哪个选项不是合法的数据类型?A. intB. floatC. doubleD. character答案:D2. 在C语言中,下面哪个选项是合法的变量名?A. 2abcB. abc12C. abc_12D. abc&12答案:B3. 下面哪个选项不是C语言的运算符?A. +C.D. %答案:D4. 在C语言中,下面哪个选项表示取模运算?A. %B. /C.D. ^答案:A5. 下面哪个选项是C语言中的关系运算符?A. ==B. !=C. >D. <答案:A、B、C、D6. 下面哪个选项是C语言中的逻辑运算符?B. ||C. !D. &答案:A、B、C7. 下面哪个选项是C语言中的赋值运算符?A. =B. +=C. -=D. =答案:A、B、C、D8. 下面哪个选项不是C语言中的控制语句?A. ifB. whileC. do-whileD. for答案:D9. 在C语言中,下面哪个选项表示循环不变量?A. 初始化表达式B. 循环条件C. 循环体D. 步进表达式答案:D10. 下面哪个选项是C语言中的递归调用?A. function(function());B. function();function();C. function(function());function();D. function();function(function());答案:A二、填空题(每题2分,共20分)1. C语言中,一个整型数据占____个字节。
答案:42. C语言中,一个浮点型数据占____个字节。
答案:43. 在C语言中,一元运算符“++”和“--”的优先级高于二元运算符“+”、“-”、“”、“/”、“%”。
答案:正确4. 在C语言中,关系运算符“==”和“!=”的优先级高于“<”、“>”、“<=”、“>=”。
2009计算机二级c语言考试真题及答案
2009计算机二级c语言考试真题及答案一、选择题(每题1分,共40分)1. 在C语言中,以下哪个选项是合法的标识符?A. 2variableB. variable2C. _variableD. variable-2答案:C2. 若有定义:int a=3, b=4, c=5;,则表达式a+b+c的值是:A. 12B. 9C. 15D. 3答案:C3. C语言中,以下哪个选项是正确的整型常量?A. 0x12B. 0x12.0C. 0x12LD. 0x12.0L答案:A4. 在C语言中,以下哪个选项是正确的字符常量?A. 'ab'B. '65'C. '\n'D. "A"答案:C5. 若有定义:int a=5, b=10;,则执行语句a=b后,变量a的值是:A. 5B. 10C. 15D. 0答案:B6. 在C语言中,以下哪个选项是正确的字符串常量?A. "Hello, World!"B. 'Hello, World!'C. "Hello World!"D. 'Hello World!'答案:A7. 若有定义:int a=5;,则执行语句a+=3后,变量a的值是:A. 5B. 8C. 3D. 2答案:B8. 在C语言中,以下哪个选项是正确的数组定义?A. int a[5] = {1, 2, 3, 4, 5};B. int a[5] = {1, 2, 3};C. int a[] = {1, 2, 3, 4, 5};D. int a[5] = {1, 2, 3, 4};答案:C9. 若有定义:int a[5] = {1, 2, 3, 4, 5};,则执行语句a[2]=6后,数组元素a[2]的值是:A. 1B. 2C. 6D. 5答案:C10. 在C语言中,以下哪个选项是正确的函数定义?A. int max(int x, int y) { return x > y ? x : y; }B. int max(int x, int y) { if(x > y) return x; else returny; }C. int max(int x, int y) { return x > y ? y : x; }D. int max(int x, int y) { if(x > y) return y; else returnx; }答案:A二、填空题(每题2分,共20分)1. 在C语言中,若要定义一个整型变量x并初始化为10,应使用语句:________。
2008--2009 C语言笔试真题
2009.9(1)下列数据结构中,属于非线性结构的是(C )。
A)循环队列B)带链队C)二叉树D)带链栈(3)对于循环队列,下列叙述中正确的是(D )。
A)队头指针是固定不变的B)队头指针一定大于队尾指针C)队头指针一定小于队尾指针D)队头指针可以大于队尾指针,也可以小于队尾指针(8)数据库管理系统是(B )。
A)操作系统的一部分B)在操作系统支持下的系统软件C)一种编译系统D)一种操作系统(11)以下叙述中正确的是( D)。
A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整(26)有以下程序# include <stdio.h>main(){ int m=1, n=2, *p=&m, *q=&n, *r;r=p; p=q; q=r;printf("%d,%d,%d,%d\n",m,n,*p,*q);}程序运行后的输出结果是(B )。
A)1,2,1,2 B)1,2,2,1 C)2,1,2,1 D)2,1,1,2(28)有以下程序# include <stdio.h># include <string.h>main(){ char str[][20]={"One*World","One*Dream!"},*p=str[1];printf("%d,",strlen(p));printf("%s\n",p);}程序运行后的输出结果是(C )。
A)9,One*World B)9,One*Dream! C)10,One*Dream! D)10,One*World(30)有以下程序# include <stdio.h># include <string.h>main(){ char a[10]="abcd";printf("%d,%d\n",strlen(a),sizeof(a));}程序运行后的输出结果是(B )。
2008级C语言期末机考试卷及答案
安徽大学2008----2009学年第二学期C语言程序设计期末机考试题一、单项选择题(30分,每题2分)每小题的四个选项中只有一个符合题目要求,请将正确选项前字母填在括号中。
1.若int a[][3]={1,2,3,4,5,6};则a[1][0]的值是【______】。
AA. 4B. 2C. 1D. 52.执行下列程序段后,变量k的值是【______】。
Aint k=3, s[2];s[0]=k;k = s[1]*10;A)不确定B)0C)10 D)303.执行下列程序段后,变量k的值是【______】。
Cint k=3, s[2]={1};s[0]=k;k = s[1]+10;A)不确定B)0C)10 D)304.下面程序的输出结果是【______】。
C#include <stdio.h>void main(void){int i, a[10];for(i=9;i>=0; i--)a[i]=10-i;printf("%d%d%d\n",a[2],a[5],a[8]);}A)258 B)741C)852 D)3695.下面程序的输出结果是【______】。
B#include <stdio.h>void main(void){int a[3][3]={1,2,3,4,5,6,7,8,9},i;for(i=0;i<3; i++)printf("%d ",a[i][2-i]);}A)1 5 9 B)3 5 7C)1 4 7 D)3 6 96.下面程序的输出结果是【______】。
C#include "stdio.h"void fun(int a[]){int i;for(j=0;j<5; j++)a[j]=j;}void main(void){int num[]={5,6,7,8,9}, i;fun(num);for(i=0;i<5; i++)printf("%d ", num[i]);}A. 56789B. 98765C. 01234D. 432107.下面程序的输出结果是【______】。
2008-2009第二学期《C程序设计》试卷A(08级09.4,含答案)
一、选择题(每题1分,共20分)1.设 int b=2;表达式b/(b*2)的值是()。
A. 0B. 0.5C. 0.500000D. 0.000002.下列标识符中不合法的标识符的是()。
A. hot_doB. cat1C. _priD. 2ab3.以下程序的输出结果是()。
void main(){int k=17;printf("%d,%o,%x \n",k,k,k);}A. 17,021,0x11B. 17,17,17C. 17,0x11,021D. 17,21,114.设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为()。
A.4 B.16 C.32 D.525.下述程序段中,while循环执行次数是( )。
int k=0;while(k=1) k++;A. 无限次B. 有语法错误,不能执行C. 一次也不执行D. 执行一次6. 若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()。
A. a < > 0B. !aC. a=0D. a!=07.执行下述语句后,*(p+1)的值是( )。
char s[]= “ab”,*p;p=s;A.‘b’B. OC. 不定值D. 非法引用128.有以下语句:int b;char c[10];,则正确的输入语句是( )。
A. scanf("%d%s",&b,&c);B. scanf("%d%s",&b,c);C. scanf("%d%s",b,c);D. scanf("%d%s",b,&c);9.能正确表示a 和b 同时为正或同时为负的逻辑表达式是( )。
A. (a>=0‖b>=0)&&(a<0‖b<0)B. (a>=0&&b>=0)&&(a<0&&b<0)C. (a+b>0)&&(a+b<=0)D. a*b>010.C 语言中的逻辑运算结果,用( )表示逻辑“真”值。
2009年C语言期末考试题(A卷)及答案
main( ) { int i; i=f(4+4)/f(2+2); printf(“%d\n”,i); } 执行后输出结果是_____________。 14.下列程序段的输出结果是_____________。 void fun(int *x, int *y) {printf("%d %d", *x, *y); *x=3; *y=4; } main() { int x=1,y=2; fun(&y,&x); printf("%d %d",x, y); } 15.以下程序运行后,输出结果是_____________。 main() { static char a[]="ABCDEFGH",b[]="abCDefGh"; char *p1,*p2; int k; p1=a; p2=b; for(k=0;k<=7;k++) if(*(p1+k)==*(p2+k)) printf("%c",*(p1+k)); printf("\n"); }
】;j++)
printf(“*”);
在下划线处应填入的是_____________。
2. 有以下程序 main( ) { int n=0,m=1,x=2; if(!n) x-=1; if(m) x-=2; if(x) x-=3; printf(“%d\n”,x); } 执行后输出结果是_____________。 3. 设 y 是 int 型变量,请写出判断 y 为奇数的关系表达式_____________。 4. 若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量 b 中的值是_____________。 c=(a-=(b-5)); c=(a%11)+(b=3); 5. 表示“整数 x 的绝对值大于 5”时值为“真”的 C 语言表达式是_____________。 6. 下列程序段的输出结果是_____________。 main() { char b[]="Hello,you"; b[5]=’\0’; printf("%s \n", b ); }
c语言题库01
试卷编号:8125所属语言:C语言试卷方案:2008-2009第2学期期末考试试卷总分:100分共有题型:5种一、判断共10题(共计20分)第1题(2.0分)题号:1268逻辑运算的三种运算符&&,||,!优先级相同答案:N第2题(2.0分)题号:9int i=20;switch(i/10){case 2:printf("A");case 1:printf("B");}的输出结果为A。
答案:N第3题(2.0分)题号:1224在C语言程序中, 同一个问题可以有多种实现算法.答案:Y第4题(2.0分)题号:28如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准。
答案:Y第5题(2.0分)题号:1249语句"char s[]="example";"与"char s[7]="example";"都定义了长度是7的s 数组. 答案:N第6题(2.0分)题号:1285C语言将大写字母和小写字母认为两个不同的字符.答案:Y第7题(2.0分)题号:1239若有定义int arr[]={1,2,3,4};则说明arr数组的长度任意.答案:N第8题(2.0分)题号:1254指针也是有类型的,它的类型就是它所指向的实体的类型.答案:Y第9题(2.0分)题号:26int a[3][4]={{1},{5},{9}}; 它的作用是将数组各行第一列的元素赋初值,其余元素值为0。
答案:Y第10题(2.0分)题号:1112字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面. 答案:N二、单项选择共15题(共计30分)第1题(2.0分)题号:173C语言执行程序的开始执行点是()。
A:程序中第一条可以执行语言B:程序中第一个函数C:程序中的main函数D:包含文件中的第一个函数答案:C第2题(2.0分)题号:3144若x=2,y=3则x||y的结果是A:0B:1C:2D:3答案:B第3题(2.0分)题号:3094C语言中,逻辑"真"等价于A:大于零的数B:非零的数C:大于零的整数D:非零的整数答案:B第4题(2.0分)题号:3113设变量定义为"int a, b;",执行下列语句时,输入_____,则a和b的值都是10. scanf("a=%d, b=%d",&a, &b);A:10 10B:10, 10C:a=10 b=10D:a=10, b=10答案:D第5题(2.0分)题号:3165main(){int x=1,a=0,b=0;switch (x){ case 0: b++;case 1: a++;case 2: a++;b++;}printf("%d,%d",a,b);}该程序的输出结果是( )A:2,1B:1,1C:1,0D:2,2答案:A第6题(2.0分)题号:164关于多路分支语句switch,下面说法不正确的是( ).A:凡是能用switch语句实现的分支控制都可以用if语句实现B:switch语句中可以出现多个空的case子句C:switch语句不能嵌套D:一般情况下,当有多路分支时使用switch语句比使用if语句方便答案:C第7题(2.0分)题号:613下面有关 for 循环的正确描述是()。
c语言期末考试题库及详解答案
c语言期末考试题库及详解答案C语言作为计算机编程的基础语言,其期末考试通常包含对基础语法、数据结构、算法设计等方面的考察。
以下是一份C语言期末考试题库及详解答案,供学生复习参考。
1. 编写一个C程序,实现两个整数的加法运算,并输出结果。
```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;}```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[100];printf("请输入一个字符串:");scanf("%s", str);reverseString(str);printf("反转后的字符串是:%s\n", str);return 0;}```3. 编写一个C程序,实现查找数组中的最大值,并输出其索引。
```c#include <stdio.h>int main() {int arr[] = {5, 10, 15, 20, 25};int maxIndex = 0;for (int i = 1; i < 5; i++) {if (arr[i] > arr[maxIndex]) {maxIndex = i;}}printf("数组中的最大值是:%d,其索引为:%d\n",arr[maxIndex], maxIndex);return 0;}```4. 编写一个C程序,实现冒泡排序算法。
2009年春08级c期末试卷a卷
2009年08级C程序设计期末考试卷(A)[注意] 所有答案写在单张的答题卷上。
一、判断题(本题共10分,每小题1分,用A表示正确,用B表示错误。
)(1) C语言的标识符由字母、数字和下划线组成,其中第一个字符必须是字母。
B第一个字母必须是字母或下划线(2) C语言的变量在使用前都必须先定义,定义变量时要指定变量名和数据类型。
A(3) 如果a=1,b=2,c=3则表达式a=b==c的值等于3。
B 这个好像是先判断b和c是否相等,然后在决定结果是0还是1(4) 在程序设计中,经常用选择(又称分支)、循环和函数3种控制结构。
B不是函数而是顺序(5) 在C语言中,提供了3种循环语句:for、while、do-while。
A(6) 如果定义了int a[20],那么使用语句a[20]=10可以给数组元素a[10]初始化。
B对一维数组的初始化在书本122页有详细的介绍(7) 用关键字static声明的变量是全局变量,在整个程序的全部执行过程中都占用存储单元。
B对全局变量在书86页讲的很详细,在这里题目可能是把全局变量,局部变量与静态,动态的知识混淆了(8) 如果a=1,b=2,c=3,d=4则表达式a>b?c:d的值等于3。
B本题的结果应该是4,对这种条件表达式的内容在书113有详细的介绍(9) 如果a=15,那么执行a=a>>2以后,a的值就变成了3。
A对这种位移运算在书116页,有详细的介绍(10) Struct是定义结构类型的关键字,struct和它后面的结构名一起组成一个新的数据类型。
A对结构的内容在书本176页二、单选题(本题共20分,每小题2分)(11) 假设定义变量如下:int x;float y;以下输入语句中____C____是正确的。
[A]scanf(“%f%f”,&y,&x); [B] scanf(“%f%d”, y, x);[C] scanf(“%f%d”,&y,&x);[D]scanf(“%5.2f%2d”,&y,&x);在书本23页有相关的内容(12) 假设有以下定义:int a[5]={1,2,3,4,5},i=3,*p=a , *q=a; 则不能正确执行的语句是_B_______。
C语言_期末考试试卷A
29、执行语句:printf(“ |%10.5f| \n”,12345.678);的输出是( A、|12345.67800| B、|12345.6780| C、|12345.17800|
30、若执行以下程序时从键盘上输入 3□4,则输出结果是(
printf("%d,%o,%x \n",k,k,k); } A、17 021 0x11 B、17 17 17 )。 C、17 0x11 021 D、17 21 11
48、下列描述中不正确的是( A、字符型数组中可以存放字符串
33、以下程序的输出结果是( main( ) { int a= -1,b=1,k;
B、可以对字符型数组进行整体输入、输出 C、可以对整型数组进行整体输入、输出 D、不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值 49、以下选项中属于 C 语言的数据类型是( A、 复数型 B、 逻辑型 )。 C、 双精度型 )。 D、 〈= D、 集合型
if((++a<0)&& ! (b-- <=0)) printf("%d else printf("%d A、-1 1 B、0 1 %d\n",b,a); C、1 0 )。 D、0 } 0 %d\n",a,b);
A、2 B、3 C、4 D、7 )。
22、以下程序的输出结果是(
main() {int x=10,y=10; pirntf(“%d } %d\n”,x,y);
16、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( A、必须为字母 B、必须为下划线
2008-2009年二级C语言笔试真题及答案2
}
main()
{ STU c={“Qian”,’p’,95.0,92.0};
f(c); printf(“%s,%c,%2.0f,%2.0f\n”,,c.sex,c.score[0],c.score[1]);
}
程序的运行结果是
typedef struct { char name[9]; char sex; float score[2]; } STU;
void f( STU a)
{ STU b={“Zhao”,’m’,85.0,90.0} ; int i;
strcpy(,);
a.sex=b.sex;
b 1 n1
B C D
f 3 h2
a 0 k1
n 2 x1
有关系R和S通过运算得到关系T,则所使用的运算为
A)并B)自然连接C)笛卡尔积D)交
(10)设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为
for(k=0;k<10;k++)printf(“%d”,a[k]); printf(“\n”);
}
程序运行的结果是
A)0987654321 B)4321098765
C)5678901234 D)0987651234
(33)有以下程序
#include <stdio.h>
#include <string.h>
while(*b=*a) {b++;a++;}
}
2009计算机二级c语言考试真题及答案
2009计算机二级c语言考试真题及答案一、单项选择题(每题2分,共40分)1. 在C语言中,下列关于变量声明的描述中,错误的是:A. 变量可以在函数内部声明B. 变量可以在函数外部声明C. 变量必须在函数内部声明D. 变量可以在语句中声明答案:C2. 若有定义:int a=5, b=10;,则表达式a+=b的值是:A. 15B. 5C. 10D. 0答案:A3. 在C语言中,下列关于数组的描述中,正确的是:A. 数组名代表数组中第一个元素的地址B. 数组名代表数组中最后一个元素的地址C. 数组名代表数组的总大小D. 数组名代表数组中所有元素的地址答案:A4. 下列关于指针的描述中,错误的是:A. 指针变量可以被赋值为一个变量的地址B. 指针变量可以被赋值为一个常量的值C. 指针变量可以被赋值为另一个指针变量的值D. 指针变量不能被赋值为一个函数的地址答案:D5. 在C语言中,下列关于函数的描述中,正确的是:A. 函数可以没有返回值B. 函数可以返回多个值C. 函数可以没有参数D. 函数必须有返回值答案:C6. 若有定义:char str[10]="hello";,则下列关于str数组的描述中,正确的是:A. str数组的长度为5B. str数组的长度为10C. str数组的内容为"hello"D. str数组的内容为"hello\0"答案:B7. 在C语言中,下列关于结构体的描述中,错误的是:A. 结构体可以包含不同类型的数据B. 结构体可以包含其他结构体C. 结构体不能包含函数D. 结构体可以包含指针答案:C8. 下列关于预处理指令的描述中,正确的是:A. #include <stdio.h> 是一个宏定义B. #define PI 3.14159 是一个条件编译指令C. #ifdef 是一个文件包含指令D. #pragma 是一个编译器指令答案:D9. 在C语言中,下列关于文件操作的描述中,错误的是:A. 使用fopen函数打开文件B. 使用fclose函数关闭文件C. 使用fread函数读取文件D. 使用fwrite函数写入文件答案:C10. 下列关于位运算的描述中,错误的是:A. & 表示按位与运算B. | 表示按位或运算C. ^ 表示按位异或运算D. ~ 表示按位非运算答案:D二、程序填空题(每空2分,共20分)给定以下程序片段,请在空白处填入正确的代码:```c#include <stdio.h>int main() {int a, b, sum;scanf("%d %d", &a, &b);sum = a + b;printf("Sum is: %d\n", sum);return 0;}```若要计算两个数的乘积,需要修改程序中的哪几行代码?答案:将第4行的 `sum = a + b;` 修改为 `sum = a * b;`。
C语言期末考试卷及答案
二、判断题:(请在正确的叙述前打“√”,错误的打“×”,每题2分,共20分)()1.C语言中的变量必须先定义后使用。
()2.一个C程序的main函数,必须放在程序的所有函数的最前面,应为程序总是从它开始执行的。
()3.注释是多余的信息,会干扰计算机执行代码,因此程序里不要写注释。
()4.C语言中,大小写都是一样的,例如Main与main是一样的。
()5.C程序中的任何语句,包括空语句,都要用;结束。
()6.while语句和do-while语句都是实现循环的语句。
()7.在计算一个表达式的值的时候,要注意各个运算符的优先级和结合性。
()8.C程序的代码可以用word编辑并直接运行。
()9.表达式”a=b=c=5”的运算方向是从左向右。
()10.C语句也可以使用中文编写。
三、画程序流程图:(10分)根据下面的代码,画出相应的程序流程图。
#include <stdio.h>main(){int a,b,c,max;printf("Input a,b,c:");scanf("%d,%d,%d",&a,&b,&c);if(a>b)max=a;elsemax=b;if(max<c)max=c;printf("max=%d\n",max);}四、程序分析(共25分)1.写出下列程序运行结果。
(10分)#include <stdio.h>main(){int a=10,b=8,c=6;printf("a=%d,b=%d,c=%d\n",a,b,c); c=a>b?a++:++b;printf("a=%d,b=%d,c=%d\n",a,b,c); }运行结果:2.写出下列程序运行结果。
(15分)#include <stdio.h>main(){int a[5]={0},i;for(i=0;i<3;i++){a[i]=i*2;}for(i=0;i<3;i++){printf("a[%d]=%d\n",i,a[i]);}}运行结果:五、编写程序(25分)1.编写程序:从键盘输入一个矩形的长和宽,求其面积(结果要求保留2位小数)。
大二c语言期末考试题及答案
大二c语言期末考试题及答案**大二C语言期末考试题及答案**一、选择题(每题2分,共20分)1. C语言中,以下哪个是合法的变量名?A. 2variableB. variable2C. variable-2D. variable$2**答案:B**2. 下列哪个选项是C语言中的关键字?A. includeB. mainC. intD. string**答案:C**3. C语言中,以下哪个函数用于计算两个整数的和?A. max()B. min()C. sum()D. pow()**答案:C**4. 在C语言中,以下哪个运算符用于逻辑与?A. &&B. ||C. !D. |**答案:A**5. C语言中,以下哪个选项是正确的字符串定义?A. char str = "Hello";B. char str[] = "Hello";C. string str = "Hello";D. char str[5] = "Hello";**答案:B**6. C语言中,以下哪个函数用于计算数组中元素的平均值?A. sum()B. average()C. mean()D. avg()**答案:B**7. 在C语言中,以下哪个选项是正确的函数声明?A. int add(int x, int y);B. int add(int, int);C. int add();D. int add(x, y);**答案:A**8. C语言中,以下哪个选项是正确的宏定义?A. #define PI 3.14159B. #define PI = 3.14159C. #define PI 3.14159D. #define PI 3.14159;**答案:A**9. 在C语言中,以下哪个选项是正确的结构体定义?A. struct Point { int x, y; };B. struct { int x, y; } Point;C. struct Point { int x; int y; };D. struct { int x; int y; };**答案:C**10. C语言中,以下哪个选项是正确的指针声明?A. int *p;B. int p*;C. *int p;D. int *p[];**答案:A**二、填空题(每题2分,共20分)1. 在C语言中,用于输入的函数是________。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北京航空航天大学2008-2009 学年第一学期期末《 C 程序设计》考试A 卷班级______________学号 _________姓名______________成绩 _________2009年1月5日班号学号姓名成绩《 C 程序设计》期末考试卷注意事项:1、此卷为闭卷考试,120分钟完成;2、笔试成绩为卷面成绩*0.7。
题目:一、阅读下列程序并回答问题(20分,每题5分)1、若有以下程序#include <stdio.h>void main(){char a[20];scanf(“%s”,a);printf(“%s\n”,a);}从键盘上输入19个字符:one world one dream, 则输出为 D 。
A. one world one dreamB. one world oneC. one worldD. one2、有一函数关系如下:x-1 x<0y= x x=0x+1 x>0下列程序能够正确表示上述关系的________________C_________。
A. y=x+1;B. y=x-1;if (x>=0) if (x!=0)if (x==0) y=x; if (x>0) y=x+1;else y=x-1; else y=x;C. if (x<=0)D. y=x;if (x<0) y=x-1; if (x<=0)else y=x; if (x<0) y=x-1;else y=x+1; else y=x+1;3、请写出以下程序的输出结果:____a=12,b=9,c=3_____________。
#include <stdio.h>void swap(int *ptr1,int *ptr2){int i;i=*ptr1;*ptr1=*ptr2;*ptr2=i;}void exchange(int *q1,int *q2,int *q3){if (*q1<*q2) swap(q1,q2);if (*q1<*q3) swap(q1,q3);if (*q2<*q3) swap(q2,q3);}void main(){int a,b,c;a=9,b=3,c=12;exchange(&a,&b,&c);printf(“a=%d,b=%d,c=%d\n”,a,b,c);}4、若有以下程序#include <stdio.h>int sum(int k);void main(){int s,i;for (i=1;i<=10;i++) s=sum(i);printf(“s=%d\n”,s);}int sum(int k){static int x=0;x+=k;return (x);}(1)上述程序的功能是什么?运行结果是什么?(2)若将sum()函数中的变量说明语句static int x=0;改为int x=0;,程序的运行结果是又什么?为什么?(1).计算1+2+……+10的值s=55(2)s=10二、程序填空题(20分,每题5分)1、下面程序是整元换零钱问题。
把1元兑换成1角、2角和5角的零钱,打印所有的不同的换法。
#include <stdio.h>void main(){int x,y,z,n;_n=0_____;for (x=0;x<=10;x++)for (y=0;y<=5;y++)for (z=0;z<=2;z++)if ( _x+y*2+z*5==10__________){n++;printf("换法%2d: 1角%2d张+2角%d张+5角%d张\n",n,x,y,z);}}2、以下函数利用插入排序方法对含有n个元素的数组x[]进行排序。
void insert(int x[],int n){int i,j;int temp;for (i=1;i<n;i++){temp=x[i];j=i-1;while (j>=0 && temp<x[j]){x[j+1]=x[j];j--;}x[j+1]= temp ;}}3、下面程序显示从3起小于100的所有双素数(双素数:如果p和q都是素数且q=p+2,则p/q称为双素数,例如3/5,5/7都是双素数)。
#include "stdio.h"int prime(int m);int main(int argc, char* argv[]){int p,q;for (p=3;p<100;p+=2){q = p+2 ;if ( prime(p) && prime(q) ) printf("%d/%d\n",p,q);}return 0;}int prime(int m){int i;for ( i = 2; i<=m/2; i++ )if ( m % i == 0 ) break;if ( i > m/2 ) return 1;else return 0;}4、下面的函数strcat()实现将字符串str2连接到字符串str1的功能。
请在程序的空白处填入一条语句或一个表达式。
char *strcat(char *str1,char *str2) //此函数类型为字符指针型,函数名为srrcat{char *t=str1;while ( *str1) str1++;while ( *str2 ){*str1=*str2;str1++;str2++;}*str1= …\0‟;return (t);}三、编程题(60分)1、输入一个正整数n (1<n≤6),根据下式生成1个n*n的方阵,然后将该方阵转置(行列互换)后输出。
10分a[i][j] = i * n + j + 1(0≤i≤n-1,0≤j≤n-1)例如n=3时:1 2 3 1 4 7A= 4 5 6 转置成B= 2 5 87 8 9 3 6 9#include<stdio.h>void main(){int n;printf(“请输入一个正整数\n”);scanf(“%d”,&n);int a[6][6],b[6][6], i,j;for(i=0;i<n;i++)for(j=0;j<n;j++)a[i][j] = i * n + j + 1;for(i=0;i<n;i++)for(j=0;j<n;j++)b[i][j] = a[j][i];printf(“得到的方阵为\n”);for(i=0;i<n;i++){for(j=0;j<n;j++)printf(“%-5d”,b[i][j]);printf(“\n”);}}2、请设计函数double exp(double x),利用e x=1+x+x2/2!+x3/3!+x4/4!+…,计算e x的近似值,要求误差小于10-6。
20分#include<stdio.h>#include<math.h>double exp(double x);void main (){double x;printf(“请输入未知数x的值\n”);scanf(“%lf”,&x);printf(“近似值为%lf\n”,exp(x));}double exp(double x){int i,t=1;double sum=1,y=1;for(i=1;y>=0.000006;i++){t=t*i;y= pow(x,i)/t;sum=sum+y;}return sum;}3、Fibonacci数列A={1,1,2,3,5,8,…}有如下性质:30分a0=a1=1a i=a i-1+a i-2 i>1对于给定的n,另外有一个由n个元素组成的数列X={x0,x1,…,x n-1},该数列中各元素的值为:x i=a i/a i+1i=0,1,2,…,n-1,请将X中的元素按由小到大排序,排序用选择法或冒泡法,排序后的数列X输出到文本文件x.txt中,X中的各元素仍以分数形式表示。
例如,当n=5时,排序前的X={1/1,1/2,2/3,3/5,5/8},排序后X={1/2,3/5,5/8,2/3,1/1}。
#include<stdio.h>#include<stdlib.h>#define n 10struct fenshu{int m1;int m2;};void main (){int i,j,k,a[n+1]={1,1};for(i=2;i<n+1;i++)a[i]=a[i-1]+a[i-2];float x[n];fenshu y[n],temp;for(i=0;i<n;i++){x[i]=a[i]/a[i+1];y[i].m1=a[i];y[i].m2=a[i+1];}float t;for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)if(x[j]<x[k])k=j;if(k!=i){t=x[i];x[i]=x[k];x[k]=t;temp=y[i];y[i]=y[k];y[k]=temp;}}FILE *fp;if((fp=fopen(“x.txt”,”w”))==NULL){printf(“打开文件出错\n”);exit(0);}for(i=0;i<n;i++)fprintf(fp,”%d/%d ,”,y[i].m1, y[i].m2);fclose(fp);}。