C程序04级期末试卷
- 格式:doc
- 大小:69.50 KB
- 文档页数:10
c语言程序设计(第四版)考试题C程序设计(第四版)期末考试题本卷共有4道大题:一、单项选择题(20道小题,共20分)1、以下对C语言函数的有关描述中,正确的是( )(1分)A、在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B、C函数既可以嵌套定义又可以递归调用C、函数必须有返回值,否则不能使用函数D、C程序中有关调用关系的所有函数必须放在同一个源程序文件中2、strcpy库函数用于复制一个字符串。
若有以下定义:char *str1="copy",str2[10],*str3="hijklmn";char *str4,*str5="abcd";则对strcpy库函数的错误调用是( )(1分)A、strcpy(str2,str1)B、strcpy(str3,str1)C、strcpy(str4,str1)D、strcpy(str5,str1)3、设有以下语句:char str[4][12]={"aaa","bbb","ccc","ddd"};char *strp[4]; int i;for(i=0;i<4;i++) strp[i]=str[i]; 若0<=k<4,下列选项中对字符串的非法引用是( )(1分)A、strpB、str[k]C、strp[k]D、*strp4、以下各选项企图说明一种新的类型名,其中正确的是( )(1分)A、typedef v1 int;B、typedef v2=int;C、typedef v1 int v3;D、typedef v4: int;5、若以下定义和语句:int a[]={1,2,3,4,5,6,7,8,9,0}; int *p,i;p=a;0<i<="" p="">A、&(a+1)B、a++C、&pD、&p[i]6、C语言标准库函数"fgets(string,n,fp)"的功能是( )(1分)A、从文件fp中读取长度为n的字符串存入指针string指向的内存B、从文件fp中读取长度不超过n-1的字符串存入指针string指向的内存C、从文件fp中读取n个字符串存入指针string指向的内存D、从文件fp中读取不超过长度为n的字符串存入指针string指向的内存7、以下叙述中不正确的是( )(1分)A、在函数中,通过return语句传回函数值B、在函数中,可以有多条return语句C、在C中,main后的一对圆括号中也可以带有形参D、在C中,调用函数,必需在一条独立的语句中完成8、若有以下定义:char a;int b; float c;double d; 则表达式a*b+d-c值的类型为( )(1分)A、floatB、intC、charD、double9、以下叙述中正确的是( )(1分)A、输入项可以是一个实型常量,如:scanf("%f",3.5);B、只有格式控制,没有输入项,也能正确输入数据到内存,例如:scanf("a=%d ,b=%d");C、当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf("%4.2f",&d);D、当输入数据时,必须指明变量地址,例如:scanf("%f",&f);10、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是( )(1分)A、INPUT x、y、z;B、scanf("%d%d%d",&x,&y,&z);C、scanf("%d%d%d",x,y,z);D、read("%d%d%d",&x,&y,&z);11、若变量都已正确定义,a=2;b=3;printf(a>b?"* * *a=%d":"# # #b=%d",a ,b);则程序段( )(1分)A、没有正确的输出格式控制B、输出为:* * * a=2C、输出为:# # # b=2D、输出为:* * * a=2# # # b=212、设有如下的变量定义:int i=8,k,a,b;unsigned long w=5;double x=1.42,y=5.2;则以下符合C 语言语法的表达式是( )(1分)A、a=a-=(b=4)*(a=3)B、x%(--3);C、a=a*3=2D、y=float(i)13、假设所有变量均为整型,表达式(a=2,b=5,a>b? a++:b++,a+b)的值是( )(1分)A、7B、8C、9D、214、以下标识符中,不能作为合法的C用户定义标识符的是( )(1分)B、printC、WORDD、sizeof15、以下合法的赋值语句是( )(1分)A、x=y=100B、d--;C、x+y;D、c=int(a+b);16、在下列选项中,没有构成死循环的程序是( )(1分)A、int i=100;whine(1) {i=i%1001;if (i>100)break;}B、for (;;);C、int k=1000;do {k;}while(k>=1000);D、int s=36;while(s);--s;17、设a=1,b=2,c=3,d=4,则表达式:a<b?a:cA、4B、3C、2D、118、假定w、x、y、z、m均为int型变量,有如下程序段:w=1; x=2; y=3; z=4; m=(w<x)?w:x;< p="">m=(mA、4B、3C、2D、119、有定义语句:int a=4,b=5,c=6,x;,则以下选项中各程序段执行后,x的值不为6的是( )(1分)A、if (a<6) x=6; else if (a<5) x=5; else x=4;B、if (a<6) x=6; if (a<5) x=4; if (bD、if (c20、在宏定义#define PI 3.14159中,用宏名PI代替一个( )(1分)A、单精度数B、双数度数C、常量D、字符串二、填空题(12道小题,共40分)1、计算机中内存储器的最小存储单位是字节,一个整数占个字节(2分)--------------------------------------------------------------------------------2、一个算法应该具有以下特点:、确定性、有零个或多个输入、有一个或多个输出、有效性(2分)--------------------------------------------------------------------------------3、唯一的一个三目运算符是(2分)--------------------------------------------------------------------------------4、printf("%5.3f\n",123456.12345);输出为(2分)--------------------------------------------------------------------------------5、描述命题“A小于B或小于C”的表达式为(2分)--------------------------------------------------------------------------------6、int i=0,s=0,a[10];while (i<10)s+=a[i++];等价于int i,s,a[10];for()(2分)--------------------------------------------------------------------------------7、已知一数组:a[0]=10,a[1]=20,a[2]=30,a[3]=40,a[4]=50,s 是int型指针,s已指向a[4],现要使s指向a[2],则s=(2分)--------------------------------------------------------------------------------8、变量分为全局和局部两种,变量离开了其所定义的函数,其存储单元就会被释放。
C语言程序设计试卷(计本04级,信安04级,闭卷,2005年7月)班级学号姓名成绩一、单项选择题(在下面每小题的A、B、C、D四个选项中,只有一个选项是正确的。
请选择正确的选项并填写到括号内。
选择正确的得分。
每小题1分,共10分)1、“\n”是()A、合法标识符B、C语言的关键字C、合法的字符串D、既不是C语言的关键字,也不是合法的字符串或标识符2、0xabcdUL是()A、字符型常量B、整型常量C、浮点型常量D、非法常量3、While是()A、合法标识符B、C语言的关键字C、合法的字符串D、既不是C语言的关键字,也不是合法的字符串或标识符4、不考虑字符串的终结符,字符串"\078ab\t\x30\\\n"的长度是:A、6B、7C、8D、155、88.F是()A、字符型常量B、整型常量C、浮点型常量D、非法常量6、ˊ\x123ˊ是()A、字符型常量B、整型常量C、浮点型常量D、非法常量7、5e5是()A、字符型常量B、整型常量C、浮点型常量D、非法常量本题第8、第9、第10小题参考下列说明:struct node{int i;int j[2];} a[]={{-1,0,1},{1,0,2},{0,-1,3},{0,1,4}};struct node *p=&a[0];8、表达式~a[1].j[0]+1的值是()A、-1B、0C、1D、29、表达式(*(p+1)).i<<2的值是()A、1B、2C、3D、410、表达式(p+2)->j[1]&0123的值是()A、1B、2C、3D、4二、多项选择题(在下面每小题的A、B、C、D四个选项中,有两个或两个以上的选项是正确的。
请选择正确的选项并填写到括号内。
多选、少选、错选均不得分。
每小题2分,共10分)1、以下选项可作为C语言合法常量的是()。
A、1UB、0678C、0XABCDEF12LD、2005F2、以下不能定义为用户标识符的是()。
一、单项选择题(本大题共20题,每题2分,共40分)1.以下不是C语言的特点的是()A、C语言简洁、紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件进行操作D、C语言移植性好2.以下不正确的C语言标识符是()A、ABCB、abcC、a_bcD、ab。
c3.一个C语言程序是由()A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成4.一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是()A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性5.设变量a是整型,f是实型,i是双精度型,则表达式10+‘a'+i*f值的数据类型为()A、intB、floatC、doubleD、不确定6.在C语言中,char型数据在内存中的存储形式是()A、补码B、反码C、源码D、ASCII码7.有如下程序,输入数据:12345M678<cR>后(<CR〉表示回车),x的值是().#include<stdio。
h〉main(){intx;floaty;scanf(”%3d%f”,&x,&y);}A、12345B、123C、45D、3458.若有以下定义inta,b;floatx,则正确的赋值语句是()A、a=1,b=2B、b++;C、a=b=5D、b=int (x);9.以下程序的执行结果是()#include〈stdio.h〉{inti=10,j=10;printf(”%d,%d\n”,++i,j——);}A、11,10B、9,10C、11,9D、10,910.巳知字母A的ASCII码是65,以下程序的执行结果是()#include<stdio。
h>main(){charc1='A',c2='Y’;printf("%d,%d\n”,c1,c2);A、A,YB、65,65C、65,90D、65,8911.下列运算符中优先级最高的是()A、<B、十C、%D、!=12.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是()。
C语言程序设计期末考试试题及其答案一、单项选择题(本大题共20题,每题2 分,共40分)1、以下不是C语言的特点的是( )A、C语言简洁、紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件进行操作D、C语言移植性好2、以下不正确的C语言标识符是( )A、ABCB、abcC、a_bcD、ab.c3、一个C语言程序是由( )A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( )A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( )A、intB、floatC、doubleD、不确定6、在C语言中,char型数据在内存中的存储形式是( )A、补码B、反码C、源码D、ASCII码7、有如下程序,输入数据:12345M678<cR>后(<CR>表示回车),x的值是( ) 。
#include<stdio.h>main(){int x;float y;scanf("%3d%f",&x,&y);}A、12345B、123C、45D、3458、若有以下定义int a,b; float x,则正确的赋值语句是( )A、a=1,b=2B、b++;C、a=b=5D、b=int(x);9、以下程序的执行结果是( )#include<stdio.h>{int i=10,j=10;printf("%d,%d\n",++i,j--);}A、11,10B、9,10C、11,9D、10,910、巳知字母A的ASCII码是65,以下程序的执行结果是( )#include<stdio.h>main(){char c1='A',c2='Y';printf("%d,%d\n",c1,c2);A、A,YB、65,65C、65,90D、65,8911、下列运算符中优先级最高的是( )A、<B、十C、%D、!=12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。
c本科四试题及答案试题一:1. 在计算机科学中,什么是算法?请给出一个具体的例子。
2. 请简要解释什么是二进制,为什么计算机使用二进制表示数据。
3. 描述一下计算机内存的工作原理。
4. 请解释什么是操作系统,并列出至少三个常见的操作系统。
5. 什么是数据库?请列举三种常见的数据库软件。
答案一:1. 算法是一系列解决问题的规则和步骤。
例如,冒泡排序是一种常见的排序算法,它通过比较相邻的元素并交换它们的位置来将一个数组按升序排列。
2. 二进制是一种使用0和1表示数值的计算机数制系统。
计算机使用二进制表示数据是因为电子设备可以更好地处理和存储二进制信号。
3. 计算机内存是用于存储和读取数据的一块物理硬件。
它工作原理是将数据存储在内存单元中,每个内存单元都有一个唯一的地址,可以通过地址来读取和写入数据。
4. 操作系统是管理计算机硬件和软件资源的程序。
常见的操作系统包括Windows、Mac OS和Linux。
5. 数据库是用于存储和管理数据的软件系统。
常见的数据库软件包括MySQL、Oracle和Microsoft SQL Server。
试题二:1. 什么是物联网?请列举三个应用场景。
2. 描述一下人工智能的概念以及它在现实世界中的应用。
3. 请简要解释什么是区块链技术,并说明其优势。
4. 什么是云计算?列举三个云计算的实际应用。
5. 请列举三种常见的网络安全威胁,并简要描述每种威胁的特点。
答案二:1. 物联网是指将传感器、设备、网络和计算系统连接起来,实现设备间的信息交互和智能控制的网络。
应用场景包括智能家居、智能交通系统和智能农业等。
2. 人工智能是指通过计算机模拟人类智能的能力。
它在现实世界中的应用包括语音助手(如Siri)、无人驾驶汽车和人脸识别技术等。
3. 区块链技术是一种分布式数据库技术,通过将数据分散存储在多个计算机节点上,并使用密码学技术保护数据安全。
其优势包括去中心化、安全性高和透明度等。
C 语言程序设计期末考试试题及其答案一、单项选择题(本大题共20 题,每题 2 分,共40分)1、以下不是C 语言的特点的是( )A、 C 语言简洁、紧凑B、能够编制出功能复杂的程序C、 C 语言可以直接对硬件进行操作D、 C 语言移植性好2、以下不正确的C 语言标识符是( )A、ABC B 、abc C、a_bc D、ab.c3、一个C 语言程序是由( )A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成4、一个算法应该具有“确定性”等5 个特性,对另外4 个特性的描述中错误的是( )A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性5、设变量a 是整型,f 是实型,i 是双精度型,则表达式10+‘a'+i*f 值的数据类型为( )A、intB、float C 、double D、不确定6在C语言中,char型数据在内存中的存储形式是()A、补码B、反码C、源码D、ASCII码7、有如下程序,输入数据:12345M678V。
只>后(<CR>表示回车),x的值是( ) 。
#include<stdio.h>main(){int x;float y;scanf("%3d%f",&x,&y);}A、12345B、123C、45D、3458、若有以下定义int a,b; float x,则正确的赋值语句是()A、a=1,b=2B、b++;C 、a=b=5D、b=int(x);9、以下程序的执行结果是( )#include<stdio.h>{int i=10,j=10; printf("%d,%d\n",++i,j--);}A 、11,10B 、9,10C 、11,9D 、10,910、巳知字母 A 的ASCII 码是65,以下程序的执行结果是( ) #include<stdio.h>main() { char c1='A',c2='Y';printf("%d,%d\n",c1,c2);A、A,YB、65,65C、65,90D、65,8911、下列运算符中优先级最高的是( )A、vB、十C、%D、!=12、设x、y和z是int型变量,且x = 3, y = 4, z= 5,则下面表达式中值为0 是( ) 。
C语言考试期末考试复习题及答案一、选择题(1) 一个C语言程序总是从(C )开始执行A) 书写顺序的第一个函数B) 书写顺序的第一条执行语句C) 主函数main()D) 不确定(2) 设int x=3,y=4,z=5,则下列表达式中的值为0的是 ( D )A) ‘x’&&’y’B) x||y+z&&y-z C) x<=yD) !((x<y)&&!z||1)(3) 执行以下程序段后,i的值是 ( C )int i=10。
switch(i+1){ case 10: i++。
break。
case 11: ++i。
case 12: ++i。
break。
default : i=i+1。
}A) 11 B) 13 C) 12 D) 14(4) 语句while(!e)。
中的条件!e等价于 ( A )A) e==0 B)e!=1 C) e!=0D) 运行时出错(5) 用 int a[4]={1,2}。
对数组进行初始化后,数组元素a[3]的值是 ( B )A) 随机值B) 0 C) 1 D) F(6) 在执行char str[10]=“china\0”; strlen(str)的结果是 ( A )A)5 B) 6 D) 7 D 9(7) 若有定义,char *p=”computer”。
则语句printf(“%c”,*(p+2))运行结果是( B )A) 随机值B) m C)o D) omputer(8) 在以下函数调用语句中fun1(x,10,(x,10),fun2(y,10,(y,10)))。
函数fun1参数的个数为 ( B )A) 8 B) 4C) 5 D) 编译出错(9) 在说明一个结构体变量时系统分配给它的存储空间是( D )A)该结构体中第一个成员变量所需存储空间 B) 该结构体中最后一个成员变量所需存储空间C)该结构体中占用最大存储空间的成员变量所需存储空间D) 该结构体中所有成员变量所需存储空间的总和1. 用C语言编写的代码程序( B )A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过编译解释才能执行2. C语言中用于结构化程序设计的三种基本结构是( A )A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)if、for、continue3. 以下定义语句中正确的是( C )A)char a='A'b='B'。
2007-2008 学年第一学期期末班号学号姓名成绩《 C 程序设计》期末考试卷注意事项:1、此卷为闭卷考试,120分钟完成;2、笔试成绩为卷面成绩*0.7。
一、选择题 (20分) 1, 下列运算符中最高优先级的运算符是 DA) && B) % C) -= D)!2, 对定义语句int a[]={1,2,3,4,5,6,7,8,9,10},*p=a,i=5;数组元素地址的正确表示是DA)&(a+1) B)a++ C)&p D)&p[i]3, 以下结构定义,请指出不正确赋值语句是struct date{int month;int day;int year;};struct student{int num;char name[20];char sex;struct date birthday;float score;char addr[30];}stu1,stu2;A) stu1.num=10; B) stu1.score+=stu2.score;C) stu1=stu2; D) stu1.birthday.month=12;4,以下程序:#include <stdio.h>void main(){FILE *fp;fp=fopen(“f1.txt”,”w”);fprintf(fp,”abc”);fclose(fp);}若文本文件f1 .txt中原有内容为good,则运行以下程序后文件f1.txt中的内容为AA) abc B)abcd C) goodabc D) abcgood5,以下程序的运行结果是int f(int i){static int n=1;return n=n*i;}int main(){int i;for (i=1;i<5;i++) printf(“%3d”,f(i));printf(“\n”);} BA)1 2 3 4 B)1 2 6 24 C)1 2 4 6 D)1 3 6 24二、填空题 (30分)1, 若有定义double x; (5分)(1)使指针p可以指向变量x的定义语句是______double *p;___________(2)使指针p指向变量x的赋值语句是________p=&x;________(3)通过指针p给变量x读入值的scanf函数调用语句是____scanf(“%lf”,p);____________(4)通过指针p给变量x赋值语句是______*p=1.0;_____________(5) 通过指针p输出x的值的语句是_______printf(“%lf”,*p);____________ 2,以下函数用以求x的y次方。
2004级计算机网络技术《C语言程序设计》试卷(A) 姓名学号班级成绩一、选择题(每小题1分,共40分)(1)在下列各组符号中,哪一组可用做变量名()A) A3B 3aB $ +aB) *x _b5_ ifC) next_day longD) A3B 3aB _b5_(2)十进制数127转换成二进制数为()A)11111111 B)01111111 C)10000000 D)11111110(3)结构化程序设计所规定的三种基本控制结构是()A)输入、处理、输出B)树形、网形、环形C)顺序、选择、循环 D)主程序、子程序、函数(4)用C语言正确描述“A小于B或小于C”的是( )A) A〈B||A〈C B〉A〈B or A〈CC) A〈B + A〈C D〉 A〈B&& AC(5)英文小写字母d的ASCII码为100,英文大写字母D的ASCII码为()A)50 B)66 C)52 D)68(6)若有定义:int a=8, b=5, c ; , 执行语句c=a/b+0.4; 后,c的值为()A)1.4 B)1 C)2.0 D)2(7)若变量a是int类型,并执行了语句:a=‘A’+1.6; , 则正确的叙述是()A)a的值是字符C B)a的值是浮点型C)不允许字符型和浮点型相加D)a是值是字符‘A’的ASCII值加上1。
(8)以下程序段的输出结果是()int a=1234;printf (“%2d/n”,a);A)12 B)34C)1234 D)提示出错、无结果(9)有如下变量定义:int k=7,x=12;则能使值为3的表达式是( )A) x%=k+2 B)x-k,k+k,x+kC)x%=k-k%5 D)x%=k)-(k%=5)(10)若有说明语句:int a,b,c,*d=&c;,则能正确从健盘读入三个整数分别赋给变量a、b、c的语句是()A)scanf(“%d%d%d”,&a,&b,d);B)scanf(“%d%d%d”,&a,&b,&d);C)scanf(“%d%d%d,a,b,d); D)scanf(“%d%d%d”,a,b,*d);(11)以下叙述中正确的是( )A)输入项可以是一个实型常量,例如:scanf(“%f”,3.5);B)只有格式控制,没有输入项,也能正确输入数据到内存,例如:scanf(“a=%d,b=%d”);C)当输入一个实型数据时,格式格式控制部分可以规定小数点后的位数,例如:scanf(“%4.2”,&f);D)当输入数据时,必须指明变量地址,例如:scanf(“%f”,&f);(12)以下叙述正确的是()A)可以把define 和if定义为用户标识符B)可以把define定义为用户标识符,但不能把if定义为用户标识符C)可以把if定义为用户标识符,但不能把define定义为用户标识符D)define和if都不能定义为用户标识符(13)若定义:int a=511, *b=&a; ,则printf(“%d/n”, *b);的输出结果为()A)无确定值 B)a的地址 C)512 D)511(14)设x和y均为int 型变量,则以下语句的功能是()x+=y; y=x-y; x-=y;A) 把x和y按从大到小排列B)把x和y按从小到大排列C)无确定结果D)交换x和y中的值(15)下面关于函数类型的说法哪一种是正确的()A)函数类型是由参数决定的 B)函数类型是由系统自动决定的C)函数类型就是返回值的类型 D)函数类型是由函数的原型说明决定的(16) 用C语言正确描述“a和b都大于c”的是( )A)a>b>c B)a>b && b>c C)a>b and b>c D)a>b || b>c(17)以下程序的输出结果是()main(){ int a=4,b=5,c=0,d;d=a&&b‖c;printf(“%d\n”,d);}A)1 B)0 C)非0的数 D) -1(18)以下程序的输出结果是()main(){ int a=12,b=12;printf(“%d%d\n”,--a,++b);}A)10 10 B)12 12 C)11 10 D)11 13(19) 表达式!x 等价于_____。
2003-2004第二学期C语言考试试题(闭卷)A卷(注意:答案写在答题纸上,否则无效)应用班级:计算机系0304-0316专科班班级:学号:姓名:总分:一、填空(每空1分,共9空,共9分)1.执行a=10>8*2?3+5:3*2;后,a的值是2.设int i=10;则执行j=++i;后j的值为3.(!x)==(x!=0)的值为4.能表示一个整数即是奇数又是3的倍数的表达式是5.定义一指向整型数据的指针变量p的语句是6.C语言中三种常用的循环控制结构是循环、do---while 循环和循环。
7.int a[9]; 则a数组的下标范围是8.对应scanf("a=%d,b=%d",&a,&b);语句的输入a为3,b为7的键盘输入格式是二、选择(每小题2分,共15小题,共30分)1.C语言中,要求运算数必须是整型的运算符是()(A) % (B) / (C) < (D) !2.表达式10!=9的值是()(A) 0 (B) 1 (C) true (D) false3.连接两个字符串的C语言库函数是()(A) strcmp (B) strcpy (C) strcat (D) strlen4. 以下定义整型3行4列的二维数组a并初始化不正确的是( )(A) int a[3][4]={0};(B) int a[][4]={0,1,2,3,4,5,6,7,8,9,10,11,12};(C) int a[3][]={0,1,2,3,4,5,6,7,8,9,10,11,12};(D) int a[3][4]={{1,2},{1,2,3},{1,2,3,4}};5.有如下程序,该程序的执行结果是( )main(){ int i,sum=0;for(i=1;i<=3;i++)sum+=i++;printf("%d\n",sum); }(A) 6 (B) 3 (C) 死循环(D) 46.有如下程序, 该程序的输出的结果是( )int addc(int a,int b,int c) { c=a+b;return(c); }main(){ int x=4,y=2,z,r;z=x+y;r=addc(addc(x,y,z),addc(y,z,x),z);printf("%d\n",r); }(A) 36 (B) 12 (C) 14 (D) 67.有如下程序,该程序的输出结果是( )long fib(int n){ if(n>2) return(fib(n-1)+fib(n-2));elseif(n= =2) return(2);else return(1); }main(){ printf("%d\n",fib(4)); }(A) 3 (B) 4 (C) 5 (D) 68.以下程序的输出结果是( )main(){ int a;for(a=1;a<=100;a++)if (a%3= =0)a+=3;printf("%d\n",a); }(A) 100 (B) 101 (C) 102 (D) 1039.以下程序的输出结果是( )void fun(int *a,int b){ *a=2; b=5; }main(){ int a=3, b=7;fun(&a,b);printf("%d%d\n", a,b); }(A) 25 (B) 37 (C) 35 (D) 2710. 以下程序的输出结果是( )#define MAX(x,y,z) x*(y)+zmain(){ int a=1,b=2, c=3;printf("%d\n", MAX(a+b,b+c, c+a)); }(A) 12 (B) 15 (C) 19 (D) 2211.以下程序运行后的输出结果是( )main(){ int i=5, j=0;do{ j=j+(--i); }while(i<2);printf("%d\n",j); }(A) 4 (B) 5 (C) 6 (D) 912.以下程序的输出结果是( )int f(int b[],int m,int n){ int i,s=1;for(i=m;i<n;i++){ b[i]=b[i-2]+ b[i+2];s+=b[i]; }return s; }main(){ int x,a[]={1,2,3,4,5,6,7,8,9,10};x=f(a,4,7);printf("%d\n",x); }(A) 22 (B) 26 (C) 42 (D) 64 13.以下程序的输出结果是( )int func(int n){ static int m=0;m=m+n;return(m); }main(){ int i,a=0;for(i=1;i<=4;i++)a+=func(i);printf("%d\n",a); }(A) 10 (B) 15 (C) 20 (D) 2214.下列程序的输出结果是( )struct student{ int a, b, c; };main() { struct student stu[2]={{1,2,3},{4,5,6}}; int t;t=stu[0].a+stu[1].b%stu[0].c;printf("%d \n",t); }(A) 0 (B) 1 (C) 3 (D) 515.以下程序的输出结果是( )main(){ int a=0,i;for(i=0;i<5;i++){ switch(i){ case 0:case 3:a+=2;case 1:case 2:a+=3; break;default:a+=5;} }printf("%d\n",a); }(A) 10 (B) 15 (C) 21 (D) 36三、程序填空(每空3分,共7空,共21分)1.下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数,请填空。
广州大学学年第学期考试卷
课程程序设计基础考试形式(开/闭卷,考试/查)信息与机电工程学院系专业班级
学号姓名
一、选择题(每题1分,共10分)
1、一个C语言源程序是由()。
A、一个主程序和若干个子程序组成
B、一个或多个函数组成
C、若干个过程组成
D、若干个子程序组成
2、以下不正确的C语言标识符是()。
A、ABC
B、abc
C、a_bc
D、ab.c
3、设n=10,i=4,则运算n%=i-1执行后,n 的值是()。
A、0
B、3
C、2
D、1
4、设int a=4,b=2,则++a-b的结果为(),a的结果为();b的结果为()。
A、2
B、3
C、4
D、5
5、C语言用()表示逻辑“假”的值。
A、true
B、t或y
C、非零整数值
D、整数0
6、对于for(表达式1;;表达式3)可以理解为()。
A、for(表达式1;0;表达式3)
B、for(表达式1;1;表达式3)
C、for(表达式1;表达式1;表达式3)
D、for(表达式1;表达式3;表达式3)
7、在定义int a[10];之后,对a的引用正确的是()。
A、a[10]
B、a[6.3]
C、a(6)
D、a[10-10]
8、以下不正确的叙述是()。
A、宏替换不占用运行时间
B、宏名无类型
C、宏替换只是字符替换
D、宏名必须用大写字母表示
二、填空题(每空2分,共20分)
阅读以下C代码,将答案填入___(n)___内。
[程序1]
#include <stdio.h>
int p(int k,int a[])
{int m,i,c=0;
for(m=2;m<=k;m++){
for(i=2; i<=m;i++)
if(!(m%i)) break;
if(i==m) a[c++]=m;
}
return c;
}
#define MAXN 20
void main ( )
{int i,m,s[MAXN];
m=p(13,s);
for(i=0;i<m;i++)
printf("%4d\t",s[i]);
printf("\n");
}
函数int p(int k,int a[])的功能是(1)__________________。
[程序2]
本程序找出正文文件“st.dat”中的各个不同整数。
该正文文件中各整数间以空格字符、TAB符(制表符)、回车符分隔。
程序中用数组b[]存贮不同的整数,变量k为已存入数组b中的不同整数的个数,并假定文件中的不同整数个数不超过1000个。
#include<stdio.h>
#define N 1000
main ( )
{ FILE ___(2)___;
int b[N],d,i,k ;
if ((fpt=fopen(“st.dat”,”r”)==NULL) { /* 以读方式打开文件*/
printf (“Cannot open file.\n”);
return;
}
k=0;
while (fscanf (___(3)___)==1) { /* 从文件中读一个整数*/
b[k]=d;
for (i=0;b[i]!=d;i++);
if (i==k) k++;
}
fclose(fpt);
for (i=0;i<k;i++) printf (“%d”, b[i]);
printf (“\n”);
}
[答案] (2)________________________________________
(3)________________________________________
[程序3]
#include <stdio.h>
void s(int a[],int n)
{int i,j,t;
for (i=0;i<n;i++){
for(t=a[i],j=i-1;j>=0&&t<a[j];j--)
a[j+1]=a[j];
a[j+1]=t;
}
}
main( )
{int i,c[]={15,3,8,9,6,2};
s(c,6);
for(i=0;i<6;i++)
printf("%4d\t",c[i]);
printf("\n");
}
程序3的输出结果是(4)______________;
函数s(int a[],int n)的功能是(5)_________________________。
4、执行下列语句后,a的值是___________。
int a=12; a*=2+3;
5、定义int a[]={1,2,3,4,5,6},*p=a;表达式(*++p)--的值是______。
6、设a=13.6,b=8 表达式a+b%3*(int)(a-b)/4的值为________。
7、C语言源程序文件的后缀是___________,经编译后生成的文件的后缀是_________,连接后生成的文件的后缀是.exe。
三、理解题(每题5分,共50分)
1、以下程序,从键盘上输入”how are you?”,输出是什么?
main()
{ char a[7];
scanf(“%s”,a);
printf(“%s”,a);
}
2、以下程序执行结果是什么?
#include<stdio.h>
main()
{
int a[3][3]={1,2,3,4,5,6,7,8,9},i,s=1;
for(i=0;i<=2;i++)
s*a[i][i];
printf(“s=%d\n”.s);
}
3、若已定义int a[]={1,2,3,4,5,6};且有*p=a;则表达式(*++p)++的值是__________.
#include <stdio.h>
void FUN(int x,int y)
{
int temp;
temp=x;
x=y;
y=temp;
}
void main()
{
int a=10,b=20;
FUN(a,b);
printf(“%d,%d”,a,b);
}
5、以下程序的执行结果是:# include <stdio.h>
typedef struct{
long x[2];
int y[4];
char z[8];
}MYTYPE;
void main()
{
MYTYPE a;
printf("%d\n",sizeof(a)); }
#include <stdio.h>
main()
{
int *p,i;
i=5;
p=&i;
i=*p+10;
printf(“i=%d\n”,i); }
7、以下程序的执行结果#include<stdio.h>
int x=1;
func(int x)
{
x=3;
}
void main()
{
func(x);
printf(“x=%d\n”,x); }
8、以下程序的执行结果#include <stdio.h> struct stru
{
int x;
char c;
};
void func(struct stru *b)
{
b->x=20;
b->c='y';
}
void main()
{
struct stru a={10,'x'},*p=&a;
func(p);
printf("%d,%c\n",a.x,a.c);
}
9、以下程序输入language programming<CR>的执行结果#include <stdio.h>
main()
{
char str[30];
gets(str);
printf("str=%s\n",str);
}
10、以下程序的执行结果
#include <stdio.h>
main()
{
int i,j;
for(i=4;i>=1;i--)
{
printf(“*”);
for(j=1;j<=4-i;j++)
printf(“\n”);
}
}
四.编程(每小题10分,共20分)
1、编写一段将n个数按输入顺序的逆序排列输出的程序,要求应用指针且不另外开设数组。
2、编写一段实现二分法查找的程序。