南昌大学C语言期末考试题
- 格式:doc
- 大小:42.00 KB
- 文档页数:14
南昌大学2007〜2008学年第一学期期末考试试卷(提前)试卷编号:_______ (B )卷课程编号:H61050001 课程名称:C程序设计 _________ 考试形式:闭卷适用班级:过控05 ___________ 姓名:_____________ 学号: ________ 班级:___________ 学院:___________________ 专业: ___________________ 考试日期:2007-12-24__________2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。
一、单项选择题(每小题2分,共50分,答案请写在答题卡)1. ________________________________________________________________________ C语言中的标识符只能由字母、数字、下划线三种字符组成,且第一个字符_________________ <A)必须为字母B)必须为下划线C)必须为字母或下划线D)可以是字母、数字、下划线中任意一种字符2. 若t为double类型,表达式t=1,t+5,t++的值是 __________ 。
A) 1 B) 6.0 C) 2.0 D) 1.03. 以下运算符中,运算对象必须是整型的是________ 。
A) / B) %= C)! = D)< =4. 设有定义:long x=-123456L;,则以下能够正确输出变量x值的语句是A) printf( “x=%d,x); B) printf( “x=%1d,x);C) printf( “ x=%8dH_ ,x); D) printf( “ x=%LD ,x)5. __________________________________________________________ 已知int x = 10,y= 20, z= 30;以下语句执行后x, y, z的值是________________________________ 。
大学生期末c语言试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个选项是合法的变量名?A. 2variableB. _variableC. variable2D. variable-2答案:C2. 下列哪个选项是C语言中的关键字?A. defineB. typedefC. includeD. using答案:B3. 在C语言中,以下哪个选项表示的是逻辑与运算?A. &&B. ||C. !D. =答案:A4. C语言中,以下哪个选项是正确的注释方式?A. /* 这是注释 */B. // 这是注释C. /* 这是注释 */D. # 这是注释答案:A5. 在C语言中,以下哪个函数用于将字符串转换为浮点数?A. atoiB. atofC. itoaD. sprintf答案:B6. C语言中,以下哪个选项是正确的数组初始化方式?A. int arr[5] = {0, 1, 2, 3, 4};B. int arr[] = {0, 1, 2, 3, 4};C. int arr[5] = {0, 1, 2};D. int arr[] = {0, 1, 2, 3};答案:A7. 在C语言中,以下哪个选项是正确的函数声明?A. int func(int a, int b);B. int func(int a, int b) {}C. int func(int, int);D. int func(int a, int b) = 0;答案:A8. 以下哪个选项是C语言中正确的文件包含指令?A. #include <stdio.h>B. #include "stdio.h"C. #include <stdio.h>D. #include "stdio.h"答案:A9. 在C语言中,以下哪个选项是正确的字符串定义方式?A. char str[] = "Hello";B. char str[] = {'H', 'e', 'l', 'l', 'o'};C. char str[] = "Hello";D. char str[] = {'H', 'e', 'l', 'l', 'o'};答案:A10. C语言中,以下哪个选项是正确的结构体定义方式?A. struct Student {int id;char name[50];};B. struct Student {int id;char name[];};C. struct Student {int id;char name[50];} student;D. struct Student {int id;char name[];} student;答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用______运算符可以取变量的地址。
大学生期末c语言试题及答案一、选择题(每题2分,共20分)1. C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A2. 下列关于数组的描述中,正确的是:A. 数组必须在定义时初始化B. 数组的元素类型必须一致C. 数组的下标可以是实数D. 数组的下标可以是负数答案:B3. C语言中,用于文件操作的库函数位于哪个头文件中?A. stdio.hB. math.hC. string.hD. stdlib.h答案:A4. 下列哪个运算符不能用于赋值?A. =B. +=C. *=D. %答案:D5. C语言中,用于定义一个函数的关键字是:A. functionB. defineC. defD. void答案:B6. 下列关于指针的描述中,错误的是:A. 指针可以存储地址B. 指针可以存储值C. 指针可以作为函数的参数D. 指针可以作为函数的返回值答案:B7. C语言中,用于定义一个宏的预处理指令是:A. #defineB. #includeC. #pragmaD. #if答案:A8. 下列关于循环的描述中,正确的是:A. for循环可以没有初始化表达式B. while循环可以嵌套C. do-while循环至少执行一次D. 所有循环都可以使用break语句退出答案:C9. C语言中,用于定义一个枚举类型的关键字是:A. enumB. structC. unionD. typedef答案:A10. 下列关于函数的描述中,错误的是:A. 函数可以没有返回值B. 函数可以有多个返回值C. 函数可以递归调用D. 函数可以嵌套定义答案:D二、填空题(每题2分,共20分)1. 在C语言中,字符'A'的ASCII码值是______。
答案:652. 若int a = 10; int b = 20; 则表达式a++ + b的结果是______。
—南昌大学考试试卷—【适用时间:2013 ~2014 学年第二学期试卷类型:[ A ]卷】南昌大学 2013~2014学年第二学期期末考试《C程序设计(A卷)》参考答案及评分标准一、单项选择题(每小题2分,共40分)二、填空题(每空2分,共20分)【1】、循环结构【2】、声明(定义) 【3】、地址(指针) 【4】、函数头【5】、地址【6】、5_【7】、s=0 【8】、t*10【9】、strlen(str)/2 【10】、str[j-1]或*(str+j-1)三、程序阅读题(每小题4分,共 20 分)1、a=5,b=0,c=32、i1=4,i2=3,i=143、s0=18,s1=20,s2=484、 *************************5、x=13, y=21x=5, y=21, z=3四.程序设计题(每小题 10 分,共20 分)1编写一个函数,实现显示输出数组a[n]中大于等于平均值的所有元素值。
函数原型为void f2(double a[], int n),其中n为数组元素个数。
void f2(double a[ ], int n){int i;double sum=0;for(i=0;i<n;i++) sum+=a[i];sum/=n;for(i=0;i<n;i++)if(a[i]>=sum) printf(“%10.2lf ”,a[i])’;}2求满足不等式22+42+...+n2<1000的最大n值,假定分别用i和s作为取偶数值和累加值的变量。
#include<stdio.h>void main(){int i=0; //用i作为依次取值偶数的变量int s=0; //用s作为累加变量do {i+=2;s+=i*i;}while(s<1000);printf("n=%d",i-2);}。
南昌大学2003 ~2004 学年第二学期期末考试试卷A卷一单项选择题1.‘A’的ASCII码为65,n为int型,执行n =‘A’+‘6’-‘3’;后,n的值为 B 。
A)‘D’ B) 68 C) 不确定的值D) 编译出错2.下列变量名中, A 是合法的。
A)CHINA B) byte-size C) double D) A+a 3.在static int B[3][3]={{1},{3,2},{4,5,6}};中, a[2][2]的值是 C 。
A)0 B) 5 C)6 D)24.若有定义int a=3, *p=&a ;则*p的值是 B 。
A)常量a的地址值B)3C)变量p的地址值D)无意义5.下列关于指针运算的各叙述中,不正确的叙述是 D 。
A)指向同一数组的两个指针,可以进行相等或不等的比较运算;B)可以用一个空指针赋值给某个指针;C)指向数组的指针,可以和整数进行加减运算;D)指向同一数组的两个指针,可以进行有意义的相加运算。
6. 已知x、y、z是int型变量,且x=3,y=4,z=5;则下面各表达式中,值为0的是 D 。
A)‘x’&&‘y’ B)x<=y C)x || y+z && y-z D) !((x<y) && !z || 1) 7.下列各选项中,正确的选项是 A 。
A) 0和‘\0’值相等。
B) 0和‘0’ 值相等。
C)‘\0’和‘0’ 值相等。
D) 0、‘\0’和‘0’ 值都不相等。
8. 若有说明语句:char ch=‘\72’;则变量ch A 。
A)包含1个字符B) 包含2个字符C) 包含3个字符D) 说明不合法9.在下列关于C++与C语言关系的各描述中, D 是错误的。
A)C语言是C++的一个子集;B)C语言与C++是兼容的;C)C++对C语言进行了一些改进;D)C++和C语言都是面向对象的。
10.在下列关于类概念的各描述中, A 是错误的。
一、单项选择题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题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B)。
A)3ax B)x C)case D)-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。
A)%x B)a+b C)a123 D)123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。
南昌大学c期末考试题及答案一、选择题(每题2分,共20分)1. 在C语言中,下列哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项是正确的C语言数组声明?A. int arr[10];B. int arr[];C. int arr[10] = {0};D. 所有选项答案:D3. C语言中,哪个函数用于将字符串转换成浮点数?A. atoiB. atofC. itoaD. sprintf答案:B4. 下列哪个运算符用于执行按位与操作?A. &&B. &&C. &D. ||答案:C5. 在C语言中,以下哪个关键字用于声明一个函数?A. intB. voidC. returnD. all of the above答案:D6. 下列哪个选项是C语言中的合法变量名?A. _myVarB. 2myVarC. my$varD. my var答案:A7. C语言中,哪个函数用于输出格式化的字符串到标准输出?A. printfB. scanfC. sprintfD. fprintf答案:A8. 下列哪个选项是C语言中的正确注释?A. // This is a commentB. /* This is a comment */C. //* This is a commentD. all of the above答案:B9. 在C语言中,哪个函数用于计算并返回字符串的长度?A. strlenB. strlengthC. strlengD. length答案:A10. 下列哪个选项是C语言中的正确循环语句?A. forB. whileC. do-whileD. 所有选项答案:D二、填空题(每题2分,共20分)1. 在C语言中,一个变量的声明包括变量的____和____。
答案:类型名字2. C语言中,用于定义指针的关键字是____。
C语言程序设计期末考试试题含答案一、选择题(每题 3 分,共 30 分)1、以下选项中,不是 C 语言关键字的是()A intB floatC classD char答案:C解析:在 C 语言中,class 不是关键字,int、float 和 char 都是常见的数据类型关键字。
2、以下变量定义中,正确的是()A int a=b=5;B char a='A';C float a=55, b=66;D double a; b;答案:C解析:A 选项中不能在定义时连续赋值;B 选项应该是 char a ='A';注意单引号;D 选项应该是 double a, b; 中间用逗号分隔。
3、以下程序段的输出结果是()```cint a = 5, b = 4, c = 6;if (a > b && a > c)printf("a 最大\n");else if (b > a && b > c)printf("b 最大\n");elseprintf("c 最大\n");```A a 最大B b 最大C c 最大D 编译错误答案:C解析:因为 5 不大于 6,所以执行 else 部分,输出“c 最大”。
4、以下循环语句执行的次数是()```cfor (int i = 0; i < 5; i++){printf("%d ", i);}```A 4 次B 5 次C 6 次D 无限次答案:B解析:从 0 到 4 ,一共 5 次。
5、以下数组定义中,正确的是()A int a5 ={1, 2, 3, 4, 5, 6};B int a ={1, 2, 3};C int a5 ={1, 2};D int a3 =(1, 2, 3);答案:B解析:A 选项数组长度为 5,却初始化了 6 个元素;C 选项只初始化了前两个元素,后面三个元素默认为 0;D 选项初始化方式错误,应该用花括号。
2022年南昌大学公共课《C语言》科目期末试卷A(有答案)一、填空题1、设x是一个整数(16bit),若要通过xly使x低8位置1,高8位不变,则y的八进制数是_______。
2、C语言源程序文件的后缀是;经过编译后,生成文件的后缀是;经过连接后,生成文件的后缀是3、C语言的源程序必须通过【】和【】后,才能被计算机执行。
4、已知字母a的ASCIl码为十进制数97,且设ch为字符型变量,则表达式ch='a'+'8'-3'的值为_______。
5、若有定义语句:int b=7;float a=2.5,c=4.7;则表达式a+(int)(b/3*(int)(a+c)/2)%4的值为_______6、若有以下定义和语句:int*p[3],a[6],i;for(i=0;i<3;i++)p[i]=8&a[2*i];则*p[0]引用的是a数组元素_______,*(p[1]+1)引用的是a数组元素_______。
7、下面程序段的运行结果是_______。
x=2;do{printf("*");x--;)while(!x==0);8、假设变量a、b和c均为整型,以下语句借助中间变量t把a、b和c中的值进行交换,即把b中的值给a,把c中的值给b,把a中的值给c。
例如:交换前,a=10、b=20、c=30;交换后,a=20、b=30、c=10。
请填空。
_______;a=b;b=c;_______;9、假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。
请填空。
a+=_______;b=a-_______;a-=_______;10、在C语言中,二维数组元素在内存中的存放顺序是_______。
二、选择题11、以下不正确的叙述是( )。
A.在C程序中,逗号运算符的优先级最低B.在C程序中,APH和aph是两个不同的变量C.若a和b类型相同,在执行了赋值表达式a=b后b中的值将放入a中,而b中的值不变D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值12、以下表达式值为3的是( )A.16-13%10B.2+3/2C.14/3-2D.(2+6)/(12-9)13、有输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,&C.;为使变量a的值为1,b的值为3,c的值为2;从键盘输入数据的正确形式应当是()。
一、单项选择题(每空2 分,共50 分)(请将各小题正确答案的字母序号填到相应小题的下划线上)得分评阅人1. C语言的运算符按运算对象的数目可以分为。
A) 单目运算一种 B) 单目和双目运算符C) 单目、双目和三目运算符D) 单目、双目、三目运算和四目运算符2. C语言表达式2/5*10的值是。
A) 0.04 B) 4 C) 4.0 D) 03. 已知变量f和i的类型说明如下:float f=12.34; int i;则以下符合C语言语法的表达式是。
A) i=(int)f%5 B) i=int(f)%5C) i=f%5 D) i=(int f)%54. 能正确表示数学式1≤x≤5的C语言表达式是。
A) 1 <=x<=5 B) (x> =1)&(x<=5 )C) (x>=1 )&&(x<=5) D) (1 < =x)||(5> =x)5. 设变量c的数据类型是char,i的数据类型是int,f的数据类型是float,则C语言表达式c*i+c*f-i+100值的数据类型为。
A) int B) float C) char D) 不确定6. 在下列选项中,合法的C语言用户标识符的是。
A)int B)sin C)if D)i+j7. C程序的执行从开始。
A) 程序中的第1个语句 B) 程序中的第1个函数C) 名为main 的函数 D) 包含文件的第1个函数8. 凡在C语言函数中未指定存储类别的变量,其隐含的存储类别为。
A) 自动(auto) B) 静态(static) C) 字符串D) 字符或字符型变量值9. 以下程序运行时要求输入10和20分别存放在变量x和y中,能正确输入数据的是。
main(){int x,y;scanf("x=%d,y=%d",&x,&y);printf("x+y=%d",x+y);}(说明:用<CR>表示换行符,用_表示空格符)A) 10_20<CR> B) x=10,y=20<CR>C) 10<CR> D) x=10<CR>20<CR> y=20<CR>10. 下面程序的运行结果是。
main(){int a,b;a=32767;b=a+1;printf("a=%d,b=%d\n",a,b);A) a=32767,b=-32768 B) a=32767,b=32768C) a=32767,b=1 D) 运行出错11. 在C语言中,以下错误的描述是。
A) break语句不能用于循环语句和switch语句外的任何其它语句B) 在switch语句中使用break语句或continue语句的作用相同C) 在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环D) 在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环12. 在C语言中,数组作为函数的形参,函数调用时,若用数组名作为函数的实参,则实际上传递给形参的是。
A) 数组首地址 B) 数组的第一个元素值C) 数组中全部元素的值 D) 数组元素的个数13. C语言编译系统对宏命令是。
A) 在程序运行时进行替换处理B) 在程序连接时进行处理C) 和源程序中其它C语句同时进行编译D) 在对源程序中其它成份正式编译之前进行处理14. 设x、y为整型变量且已赋值,将其中较大的值输出的、正确的if 语句是。
A) if ( x >y ) printf ( “ %d ” , x );B) if ( x >y ) printf ( “ %d ” , x );printf ( “ %d ” , y );C) if ( x >y ) ; printf ( “ %d ” , x ); else printf ( “ %d ” , y );D) if ( x >y ) printf ( “ %d ” , x ); else printf ( “ %d ” , y );15. 对以下程序段描述正确的是。
x=10;while(x) x=x/4;A) 不执行循环体 B) 循环体执行一次C) 循环体执行二次 D) 死循环16. 在C语言中,引用数组元素时,对数组下标的数据类型以下说法错误的是。
A) 数组下标可以用整型常量 B) 数组下标可以用整型变量C) 数组下标可以用任意类型的表达式 D) 数组下标可以用整型表达式17. 以下C函数的功能是。
int fun(int x,int y){ int z=0;z=x>y?x:y;return z; }A) 求x 和y二者中的最大值B) 求x 和y二者中的最小值C) 返回一个不确定的值 D) 返回函数值为“0”18. 定义数组:int s[10];则数组元素下标的取值。
A) 最小值为1,最大值为10 B) 最小值为0,最大值为10C) 最小值为0,最大值为9 D) 最小值为1,最大值为919. 已知int i,s[4][5];不能表示数组第3行第3列元素值的是。
A) * ( * ( x) )+ 3 B) x [ 3 ] [ 3 ]C) * ( * ( x + 3 ) + 3 ) D) * ( x [ 3 ] + 3 )20. 以下C函数的类型是。
fun (float f ){ printf ( “ %f \n ” , f ) ; }A) int B) float C) void D) 无法确定21. 设char *s1,s2[255]=“programing” ;以下操作正确的是。
A) *s1 = “function”; B) s2=“function”;s1=s2;C) s1 = “function”;s2=s1; D) *s2='P';s1 =s2 ;22. 设有说明语句:struct student{ int num,age; };struct student stu[3]={{6001,20},{6003,21},{6005,19}};struct student *p=stu;则下面的C语言表达式中,值为6003的是。
A) ++(p->num) B) (p++)->numC) (*p++).num D) (*++p).num23. 已有定义int ( * p ) ( ) ; 则指针p 可以。
A) 代表函数的返回值 B) 指向函数的入口地址C) 代表函数的类型D) 代表函数返回值的类型24. 若用下列语句输出26个大写英文字母:(1)for(a='A';a<='Z';a++) printf("%c",a);(2)for(a='Z';a>='A';a--) printf("%c",a);(3)for(a='A';a<='Z';) printf("%c",a++);(4)for(a='A';a++<='Z';) printf("%c",a);以下说法正确的是。
A) 全都能输出B) 只有前三个语句可以输出C) 只有前两个语句可以输出D) 只有第一个语句可以输出25. 设以下程序用来求三个元素的数组中,第1个元素与第3个元素之和(程序每行前面的数字表示行号)。
1 main()2 { int a[3]={3*0},i;3 for(i=1;i<3;i++) scanf("%d",a[i]);4 for(i=1;i<3;i++) a[0]=a[0]+a[i+1];5 printf("%d",a[0]); }则下述说法正确的是。
A) 第2行有语法错误 B) 第3行有错误,程序得不到预期结果C) 编译时第4行出现语法错误D) 可以得到正确结果二、程序阅读题(每小题3分,共18分)(写出以下程序运行的结果)得分评阅人1.#include<stdio.h>main(){ int a,b,c,d;unsigned u;a=12;b=-24;u=10;c=a+u;d=b+u;printf("a+u=%d,b+u=%d\n",c,d); } 程序运行结果为:2.#include <stdio.h>main(){ int a=10,b=0;if (a!=0){ a=a+1;b=b+1;}else{ a=a+2;b=b+2;}printf(“%d,%d\n",a,b); }程序运行结果为:3.#define V(s) s*s*s#include <stdio.h>main(){ int volume;volume=V(1);printf("%d\t",volume);volume=V(2);printf("%d\t",volume);volume=V(1+2);printf("%d\n",volume); }程序运行结果为:4.#include <stdio.h>main(){ char s[]={"12345"};void sub_s1(char s[],int n) ;void sub_s2(char s[ ],int n);sub_s1(s,5);sub_s2(s,6);}void sub_s1(char s[],int n){ int i,j;for(i=0;i<n;i++){ for(j=0;j<i;j++) printf("%c",s[j%5]);printf("\n");}}void sub_s2(char s[ ],int n){ int i,j;for(i=0;i<n;i++){ for( j=i;j<n;j++) printf("%c",s[j%5]); printf("\n");}}程序运行结果为:5.#include <stdio.h>main(){ int i,a;int fun(int m);for(i=0;i<2;i++){ a=fun(4+i);printf("%d\n",a); }}int fun(int m){ static int n=0;m/=2;m=m*2;if(m){ n=n*m; return (fun(m-2));}else return(n++);}程序运行结果为:6.#include <stdio.h>main(){ int i,k=0,s[10]={1,2,3,4,5,6,7,8,9,10}; for(i=0;i<10;i++)if(i%2) k+=s[i];for(i=i-1;i>=0;i--)if(i%5= =0) printf(“%d\t”,s[i]);printf(“%d\n”,k);}程序运行结果为:三、填空题(每空 2 分,共20 分)(请在下划线上填入合适的内容,完成程序或程序段所要求的功能)得分评阅人7. 以下程序运行时从键盘输入字符串ABCDE按回车键结束输入,要求在下划线上填入合适的内容,使输入字符串中的…A‟和…B‟转换为字符…#‟输出,其它字符输出为…*‟。