程序设计基础期末模拟题(含答案)
北外期末课程在线考试模拟题《程序设计基础》(内含答案)
![北外期末课程在线考试模拟题《程序设计基础》(内含答案)](https://img.taocdn.com/s3/m/66d9d3e5710abb68a98271fe910ef12d2af9a9a4.png)
程序设计基础(C语言程序设计)01(知识要点)模拟试卷一、单选题(每题2分,共60分。
)1. C语言程序的基本单位是()。
A、程序行B、语句C、函数D、字符2. 以下关于简单程序设计的步骤和顺序的说法中正确的是()。
A、确定算法后,整理并写出文档,最后进行编码和上机调试B、首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档C、先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档D、先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构3. C语言中,文件组成的基本单位为()。
A、记录B、数据行C、数据块D、字符序列4. 能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是()。
A、(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)<!--=10&&(x-->B、(x>=1)||(x<=10)||(x>=200)||(x<=210)<!--=10)||(x-->C、(x>=1)&&(x<=10)||(x>=200)&&(x<=210)<!--=10)||(x-->D、(x>=1)||(x<=10)&&(x>=200)||(x<=210)<!--=10)&&(x-->5. 要求通过while循环不断读入字符,当读入字母N时结束循环。
若变量已正确定义,以下正确的程序段是()。
A、while((ch=getchar())!='N ') printf("%c",ch);B、while(ch=getchar()!='N ') printf("%c",ch);C、while(ch=getchar()=='N ') printf("%c",ch);D、while((ch=getchar())=='N ') printf("%c",ch);6. 以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是()。
C语言程序设计期末考试试题(含答案)
![C语言程序设计期末考试试题(含答案)](https://img.taocdn.com/s3/m/c18d1eb3cd22bcd126fff705cc17552707225ef2.png)
C语言程序设计期末考试试题(含答案)C语言程序设计期末考试试题(含答案)一、选择题(共20题,每题2分,共40分)在每个题目给出的选项中选出一个正确答案,并将其序号填入题前括号内。
1. 下列关于C语言标准库的说法,错误的是:A. C语言标准库提供了多个头文件,如<stdio.h>、<stdlib.h>等。
B. C语言标准库中包含了很多有用的函数和变量。
C. C语言标准库的函数和变量的声明保存在头文件中。
D. C语言标准库中的函数和变量可以直接使用,无需任何声明和定义。
2. 下面哪个选项是正确的整型常量表示法?A. 3.14B. 'A'C. 3.0E8D. 0xFC3. 下面代码中,输出结果是多少?```c#include <stdio.h>int main() {int x = 3, y = 4, z;z = (x++) + (++y);printf("%d\n", z);return 0;}```A. 7B. 8C. 9D. 104. 下面哪个选项是正确的声明一个指向整型数据的指针?A. int *ptr;B. int ptr;C. *int ptr;D. ptr *int;5. 下面哪个选项是正确的函数声明?A. int add(int a, int b);B. int add(int a, b);C. add(int a, int b);D. add(int a, b);(略去其他题目...)二、编程题(共2题,每题30分,共60分)请编写符合题目要求的程序。
1. 题目描述:编写一个程序,实现求解1至100之间的所有偶数的和,并打印输出结果。
以下是程序的运行示例:```1至100之间的所有偶数的和为2550。
```2. 题目描述:编写一个程序,实现将用户输入的英文句子的每个单词首字母变为大写,并打印输出结果。
以下是程序的运行示例:```请输入一个英文句子:hello world!转换后的句子为:Hello World!```三、简答题(共2题,每题10分,共20分)请简要回答以下问题。
C语言程序设计期末考试试题及答案
![C语言程序设计期末考试试题及答案](https://img.taocdn.com/s3/m/33dc248e988fcc22bcd126fff705cc1754275f33.png)
C语言程序设计期末考试试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列关于C语言函数的描述中,正确的是?A. 函数可以没有返回值B. 函数可以有多个返回值C. 函数可以没有参数D. 函数必须有参数答案:C3. 在C语言中,以下哪个运算符用于取地址?A. *B. &C. %D. #答案:B4. 下列关于数组的描述中,错误的是?A. 数组可以是多维的B. 数组的下标从0开始C. 数组的大小在编译时确定D. 数组可以动态分配答案:D5. C语言中,以下哪个关键字用于定义一个指针?A. intB. charC. *D. void答案:C6. 在C语言中,以下哪个关键字用于定义一个静态变量?A. staticB. externC. registerD. auto答案:A7. 下列关于C语言中文件操作的描述中,正确的是?A. 文件操作只能使用标准库函数B. 文件指针必须使用FILE类型C. 文件操作必须使用fclose函数关闭文件D. 文件操作不能使用缓冲区答案:B8. 在C语言中,以下哪个关键字用于定义一个宏?A. defineB. typedefC. enumD. struct答案:A9. 下列关于C语言中位运算的描述中,错误的是?A. & 表示按位与B. | 表示按位或C. ^ 表示按位异或D. ~ 表示按位取反答案:B10. 在C语言中,以下哪个关键字用于定义一个枚举类型?A. enumB. structC. unionD. typedef答案:A二、填空题(每题2分,共20分)1. 在C语言中,一个整型变量占用的内存空间通常是______个字节。
答案:42. C语言中,使用______关键字可以定义一个无限循环。
答案:while3. C语言中,数组的元素默认初始化为______。
C程序设计期末考试习题(含答案)
![C程序设计期末考试习题(含答案)](https://img.taocdn.com/s3/m/1861355a011ca300a6c39080.png)
#else
if(c>='B'&&c<='Z')
c=c-1;
else if(c=='A') c=c+25;
#endif
printf("%c",c); } }
执行后输出的结果是
。
4. 有以下程序 void fun(int *a,int i,int j) { int t; if(i<j) { t=a[i];a[i]=a[j];a[j]=t; i++; j--;
A) a>=10 or a<=0 B)a>=0|a<=10 C)a>=10 &&a<=0 D)a>=10
}
执行后输出的结果是
。
2
2. 有以下程序
void f(int y,int *x)
{ y=y+*x; *x=*x+y;}
void main( )
{ int x=2,y=4;
f(y,&x);
printf(
“x=%d,y=%d\n”,x,y);
}
执行后输出的结果是
。
3. 有以下程序
#define LETTER 1
。
4. 设有以下宏定义: #define f(z) z*z ,执行赋值语句 k=f(4 +4)/f(2 +2) ;(k 为 int 型变量)
后, k 的值是
。
5. 书写语句求 a, b 两个数的最大值 max。 ? : ;
6. 若 x 为 int 型变量,则执行 x=7; x +=x- =x+x; 语句后, x 的值是
)
C语言程序设计期末考试试题含答案
![C语言程序设计期末考试试题含答案](https://img.taocdn.com/s3/m/5001c2b04bfe04a1b0717fd5360cba1aa8118cfb.png)
C语言程序设计期末考试试题含答案一、选择题(每题 3 分,共 30 分)1、以下选项中,不是 C 语言关键字的是()A intB floatC charD string答案:D解释:string 不是 C 语言的关键字,C 语言中表示字符串通常使用字符数组。
2、以下能正确表示八进制整数的是()A 018B 0x18C 0o18D 18答案:C解释:在 C 语言中,八进制整数以 0 开头,数字取值范围 0 7,所以 0o18 能正确表示八进制整数。
3、若有定义:int a = 5, b = 2; 则表达式 a / b 的值是()A 25B 2C 20D 3答案:B解释:在 C 语言中,两个整数相除,结果为整数,舍去小数部分,所以 5 / 2 的结果是 2 。
4、以下程序段的输出结果是()int x = 10;printf("%d\n",++x);A 10B 11C 9D 12答案:B解释:++x 是先将 x 的值增加 1,然后再使用 x 的值,所以输出11 。
5、若有定义:int a5 ={1, 2, 3, 4, 5};则 a2的值是()A 2B 3C 4D 5答案:B解释:数组下标从 0 开始,所以 a2的值是 3 。
6、以下函数声明中,正确的是()A void fun(int a, b);B void fun(int a, int b);C void fun(int a; int b);D void fun(int, int);答案:B解释:函数参数列表中,每个参数都需要明确指定其类型,所以 B 选项正确。
7、若有定义:char str ="hello";则 sizeof(str)的值是()A 5B 6C 20D 不确定答案:B解释:str 数组不仅包含字符'h','e','l','l','o',还包含一个字符串结束符'\0',所以 sizeof(str)的值是 6 。
程序基础设计期末试题答案
![程序基础设计期末试题答案](https://img.taocdn.com/s3/m/395156b0f605cc1755270722192e453610665b9e.png)
程序基础设计期末试题答案一、选择题1. 在面向对象编程中,封装的主要作用是:A. 隐藏对象的实现细节B. 提高代码的复用性C. 增强程序的安全性D. 优化程序的性能答案:A2. 下列哪种数据结构在插入和删除元素时不需要重新排列其他元素?A. 链表B. 数组C. 栈D. 队列答案:A3. 以下哪个关键字在Java中用于定义一个类?A. interfaceB. staticC. classD. public答案:C4. 在C++中,动态内存分配可以使用哪个操作符?A. newB. deleteC. thisD. nullptr答案:A5. 以下哪种排序算法在最坏情况下拥有最好的性能?A. 冒泡排序B. 快速排序C. 归并排序D. 选择排序答案:C二、填空题1. 在软件开发过程中,__________方法是一种通过原型制作来逐渐完善系统的过程。
答案:迭代2. 数据库管理系统(DBMS)的主要功能是管理__________和__________。
答案:数据、信息3. 在HTML中,用于创建超链接的标签是__________。
答案:a4. 软件测试的目的是__________和__________软件中的缺陷。
答案:发现、修复5. 算法的时间复杂度表示了算法执行时间与输入数据量之间的关系,它通常用__________表示。
答案:大O符号三、简答题1. 请简述面向对象编程的三个基本特征。
答:面向对象编程的三个基本特征包括封装性、继承性和多态性。
封装性是指将对象的数据和行为包装在一起,对外隐藏实现细节。
继承性允许新的类继承现有类的属性和方法,从而提高代码的复用性。
多态性是指允许使用子类的对象来替代父类的对象,使得同一个方法或属性可以在不同的对象中具有不同的表现形式。
2. 什么是软件设计模式?请举例说明。
答:软件设计模式是在特定上下文中解决常见问题的一套经典解决方案。
它们是对在软件开发过程中经常遇到的问题的一种经验总结。
程序设计基础期末考试复习题及参考答案-专科
![程序设计基础期末考试复习题及参考答案-专科](https://img.taocdn.com/s3/m/7984f81176eeaeaad0f3303e.png)
《程序设计基础》复习题一、单项选择题1.以下叙述中正确的是( )A. C程序中注释部分可以出现在程序中任意合适的地方B. 花括号"{"和"}"只能作为函数体的定界符C. 构成C程序的基本单位是函数,所有函数名都可以由用户命名D. 分号是C语句之间的分隔符,不是语句的一部分2.在一个C语言程序中( )A. main函数必须出现在所有函数之前B. main函数可以在任何地方出现C. main函数必须出现在所有函数之后D. main函数必须出现在固定位置3.判断下面标识符中哪个是C语言中合法的用户定义标识符( )A. a-bB. #abdC. typedefD. _max4.为表示关系X≥Y≥Z,应使用C语言表达式( )A. (X≥Y)&&(Y≥Z)B. X>=Y>=ZC. (X>=Y)‖(Y>=Z)D. (X>=Y)&&(Y>=Z)5.以下选项中,不能作为合法常量的是A. 1.234e04B. 1.234e0.4C. 1.234e+4D. 1.234e0 6.若有两条语句:static char x[]=”abcde”;static char y[]={‘a’,’b’,’c’,’d’,’e’};则下列说法中正确的是( )A. x数组和y数组长度相同B. x数组长度大于y数组长度C. x数组长度小于y数组长度D. 以上三种说法均错误。
7.返回值为void的函数,其含义是( )A.调用函数之后,被调用的函数没有返回值;B.调用函数之后,被调用的函数不返回C.调用函数之后,被调用的函数返回值为任意类型D.以上三种说法均不正确。
8.对于语句,int x,y,z[10],*px,*py; 指出下列哪个语句是不正确的( )A. px=&x,py=pxB. px=xC. py=&yD. px=z9.在printf语句中按字符串输出的格式是( )A. “%s”B. “%c”C. “%f”D. “%d”10.C语言中,运算对象必须是整型的运算符是( )A. %B. /C. %和/D. >=11.以下说法正确的是( )A. C语言程序总是从第一个定义函数开始执行;B. 在C语言程序中,要使用的函数必须在main()函数中定义;C .C语言程序总是从main()函数开始执行;D. C语言程序的main()函数必须在程序的开始部分。
c语言程序设计期末考试题目及答案
![c语言程序设计期末考试题目及答案](https://img.taocdn.com/s3/m/12ac10b029ea81c758f5f61fb7360b4c2e3f2adf.png)
c语言程序设计期末考试题目及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B2. C语言中,以下哪个是正确的整型常量?A. 0x12B. 0x12.5C. 12.5D. 0x12.5e答案:A3. 若有以下定义,int a=10, b=20; 则以下哪个表达式的值不为10?A. a+bB. a-bC. a%bD. a*b答案:D4. C语言中,以下哪个是正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello\nWorld"D. "Hello World", "World"答案:C5. 以下哪个选项不是C语言中的运算符?A. +=B. ||C. &&D. :答案:D6. 在C语言中,以下哪个函数用于计算字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A7. 下列哪个选项是C语言中的合法浮点数?A. 3.14159B. .14159C. 3e14D. 3.14.59答案:C8. C语言中,以下哪个选项是正确的数组声明?A. int a[5] = {1, 2, 3, 4, 5};B. int a[] = {1, 2, 3, 4, 5};C. int a = {1, 2, 3, 4, 5};D. int a[5] = 1, 2, 3, 4, 5;答案:B9. 在C语言中,以下哪个选项是正确的函数声明?A. int add(int, int);B. int add(int a, int b);C. int add(int, int) {}D. int add(a, b);答案:A10. C语言中,以下哪个选项是正确的结构体声明?A. struct Student { int id; char name[20]; };B. struct { int id; char name[20]; } Student;C. struct Student { int id; char name; };D. struct Student { int id; char name[20]; int age; };答案:D二、填空题(每题3分,共15分)1. 在C语言中,`printf`函数用于输出信息到______。
程序设计基础期末试卷及答案
![程序设计基础期末试卷及答案](https://img.taocdn.com/s3/m/881de39fbe1e650e52ea99fa.png)
《程序设计基础》期末试题答题时间60分钟一、单项选择题(每小题4分,共40分)1、当代计算机的最主要的体系结构称为是 ______ 。
A冯•诺依曼机B非冯•诺依曼机C图灵机 D PASCAL机2、计算机软件是指 _____ OA计算机程序B源程序和目标程序C源程序D计算机程序及其有关文挡3、汇编程序的任务是______ oA将汇编语言编写的程序转换为目标程序B将汇编语言编写的程序转换为可执行程序C将髙级语言编写的程序转换为汇编语言程序D将髙级语言编写的程序转换为可执行程序4、C语言•是_____ oA机器语言 B汇编语言 C高级语言D目标语言5、关于C语言语句的正确概念是_______ oA在C语言中不能使用goto语句 B goto语句可以从C语言中去除C WhiIe和do-while都是直到型循环D SWitCh语句可以替代if语句6、如果在具有层次结构的一组元素中,存在着一对一的关系,我们可以认为这样的数据的逻辑类型就是__________ OA集合B线性结构C树型结构D图型结构7、图的典型特点是各个结点之间是 _______ OA没有直接关系 B 一对一关系 C 一对多关系 D多对多关系8、如果在内存中采用链式保存线性表,则元素之间的逻辑关系通过.A元素在内存中的相对位置表示逻借次序B保存在元素中的指针表示先后次序C设立单独的区域存储元素之间的逻辑次序D元素本身的关键字来表示逻借次序9、在软件系统进行组装测试的时候发现错误,则针对被发现的错误,可以判断在整个软件开发过程最可能岀现错误的阶段是__________ 。
A需求分析 B概要设计 C详细设计D单元测试10、早期进行程序开发过程中存在不少问题,在下列问题中有一个并不是早期程序员常见的问题,它是______ 。
A程序员过分依赖技巧与天分,不太注重所编写程序的结构B程序中的控制随意跳转,不加限制地使用goto语句C无固定程序设计方法D对问题的抽象层次不够深入二、填空题(每小题6分,共30分)1、计算机的运算器除了能够完成基本的_____ ①_______ 运算外,还具有进行比较、______ ②______ 等逻辑运算的功能。
Python程序设计期末考试卷测试卷模拟试题模拟试卷带答案
![Python程序设计期末考试卷测试卷模拟试题模拟试卷带答案](https://img.taocdn.com/s3/m/729f0031f342336c1eb91a37f111f18583d00ca8.png)
Python程序设计期末考试卷测试卷模拟试题模拟试卷带答案以下是一份针对Python程序设计的期末考试卷的模拟试题,同时附带答案。
如下所示:第一部分:选择题(共20小题,每小题2分,共40分)1. 在Python中,以下哪个关键字用于定义函数?A. defB. functionC. defineD. define_function答案:A2. 下列哪个选项是用于在Python中获取用户输入的函数?A. print()B. read()C. input()D. scan()答案:C3. Python中常见的数据类型有哪些?A. 字符串、整数、浮点数、布尔值B. 列表、元组、字典、集合C. 都对D. 都错答案:C4. 下面哪个选项可以将字符串“Hello World”转换为大写形式?A. str.upper()B. str.capitalize()C. str.lower()D. str.title()答案:A5. 在Python中,以下哪个选项用于创建一个空的列表?A. []B. {}C. ()D. ''答案:A......(略去部分题目)第二部分:编程题(共4小题,每题15分,共60分)1. 编写一个函数,接受一个整数作为参数,计算并返回该整数的阶乘。
例如,输入为3,输出为6。
答案:def factorial(n):if n == 0:return 1else:return n * factorial(n-1)2. 编写一个程序,读取一个文件中的所有内容,并统计每个单词出现的次数。
输出每个单词及其出现次数。
答案:with open('input.txt', 'r') as file:data = file.read()words = data.split()word_count = {}for word in words:if word in word_count:word_count[word] += 1else:word_count[word] = 1for word, count in word_count.items():print(word, count)3. 编写一个类,实现一个简单的计算器功能。
Java程序设计13套模拟试题(含参考答案附期末复习要点)
![Java程序设计13套模拟试题(含参考答案附期末复习要点)](https://img.taocdn.com/s3/m/d9e02dc3bd64783e08122b29.png)
《Java程序设计》模拟练习一一.选择题(每题2分,共20分)1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(b )。
A. .javaB. .classC. .htmlD. .exe2、设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( a )。
A. 3B. 3. 5C. 4D. 53、下列哪种方法在Applet生命周期中只执行一次(a )A.init B.startC.stop D.run4、类Cycle的main()方法为:public static void main(String args[]){(args[0]);}则运行时如果命令行语句为java Cycle one two three,则输出结果为(b)A CycleB oneC twoD three5、下面哪一个是Thread类中的静态方法( d)A.start() B . stop()C . run()D . sleep(long m)6、关于下列语句哪个答案是正确的(a )A 不能编译成功B 可以编译成功,输出trueC 可以编译成功,但无输出D 以上均不对7、声明公用的abstract方法的正确格式是( c)A public abstract void add() {}B public abstract add();C public abstract void add();D public virtual add();8、下列程序结果正确的是(b )public class Test {public static void main (String args []) {Ad a1=new Ad();Ad a2=new Ad();}}class Ad{static int total = 10;public int add(int i){total=total+i;return total;}}A 11,12B 11,13C 11,11D 12,129、基于的一个程序中包含一个Panel,Panel其中包含一个Label,在Frame和Panel中分别有下面的一些语句://Frame里面的语句setFont( new Font(" Serif", Font. ITALIC, 18 );setBackground( Color. cyan );//Panel中的语句setBackground( Color. white );setForeground( Color. magenta );请问Label用什么颜色和字体显示(a)A. Background = white; foreground = magenta; font = Serif Italic style, 18 pointB. Background = cyan; foreground = black; font = Serif Italic style,18 pointC. Background = cyan; foreground = black; font = system default style for labelsD. Background = white; foreground = magenta; font = system default style for labels10、语句for(int x=0,y=0;(y!=0)&&(x<4);x++)的执行次数是( b )A 无限次B 一次也不执行C 执行4次D 执行3次二.简答题(每题4分,共20分)1. 对比分析Java与其它高级语言的编译和运行过程,说明Java具有平台独立性的原因?2.简述创建线程体的两种方式3.说明对象的基本概念和主要特征4.什么是JDBC5.方法重写和方法重载的特征分别是什么?举例说明三.判断题(每题1分,共10分)1.Java中的的字符使用的是16 位的Unicode 编码。
c程序设计期末考试试题及答案
![c程序设计期末考试试题及答案](https://img.taocdn.com/s3/m/1e83086203020740be1e650e52ea551811a6c955.png)
c程序设计期末考试试题及答案一、选择题(每题2分,共20分)1. 下面哪个选项是C语言中的关键字?A. intB. floatC. stringD. array答案:A2. C语言中,下列哪个运算符用于比较两个值是否相等?A. ==B. =C. !=D. %答案:A3. 在C语言中,以下哪个函数用于将字符串转换为浮点数?A. atoi()B. atof()C. itoa()D. sprintf()答案:B4. 下列哪个选项是正确的C语言变量声明?A. int num = 10;B. int num = "10";C. int num = '10';D. int num = 10.0;答案:A5. C语言中,以下哪个语句用于循环执行代码块?A. forB. whileC. ifD. switch答案:A6. 在C语言中,以下哪个函数用于计算数组中元素的总和?A. sum()B. count()C. average()D. max()答案:A7. 下列哪个选项是C语言中正确的注释格式?A. // 这是注释B. /* 这是注释 */C. //* 这是注释 */D. /* 这是注释答案:A8. 在C语言中,如何定义一个指向整数的指针?A. int *p;B. int *p = 0;C. int *p = 10;D. int p = 10;答案:A9. 在C语言中,以下哪个选项是正确的函数定义?A. int function() {}B. int function() { return 0; }C. int function() { return; }D. int function() { return 1; }答案:B10. 下列哪个选项是C语言中正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, WorldD. 'Hello, World'答案:A二、填空题(每题3分,共15分)1. 在C语言中,使用________运算符可以交换两个变量的值。
《程序设计基础(C语言)》期末考试试卷(B卷)及答案
![《程序设计基础(C语言)》期末考试试卷(B卷)及答案](https://img.taocdn.com/s3/m/210b4326a22d7375a417866fb84ae45c3b35c26a.png)
《程序设计基础(C 语言)》期末考试试卷(B 卷)适用专业:2分,共60分)三、程序填空题(共16分)【1】 【2】 【3】《程序设计基础(C语言)》期末考试试卷(B卷)一、单项选择题(只有一个答案是正确的,请把正确选项的序号,填入答题卡中,否则无效。
多选不给分。
每题2分,共60分)1.结构化程序设计所规定的三种基本控制结构是()A) 树形、网形、环形 B)输入、处理、输出C)主程序、子程序、函数 D)顺序、选择、循环2.算法的复杂度是指 ( )A)算法程序中的指令条数 B)算法程序的长度C)算法执行过程中所需要的存储空间 D)算法程序所占的存储空间3.编制一个好的程序,首先要保证它的正确性和可靠性,还应强调良好的编程风格,在书写功能性注释时应考虑()A)仅为整个程序作注释 B)为程序段作注释C)仅为每个模块作注释 D)为每个语句作注释4.对C语言源程序执行过程描述正确的是( )A)从main函数开始执行,到源程序最后一个函数结束B)从程序中第一个函数开始执行,到最后一个函数结束C)从第一个函数开始执行,到main函数结束D)从main函数开始执行5.以下对C语言的描述中,正确的是 ( )A)最小的C语言源程序中没有任何内容B)C语言源程序中要求每行只能书写一条语句C)注释可以出现在C语言源程序中的任何位置D)C语言源程序中可以有重复的函数名6.设c1,c2都是char型变量,则以下不正确的函数调用为()A) printf("%c,%c",c1,c2); B) getchar(c1);C) putchar("\"); D) putchar(c1);7.以下运算符中优先级最高的是( )A) <= B) = C) ++ D)and8..属于C语言中合法的字符串常量的是 ( )A)hellow B)“china” C)‘hellow’ D)$abc$9.以下能正确定义整型变量a,b,c并为其赋初值为 2 的是()A) int a=b=c=2; B) int a,b,c=2; C) a=b=c=2; D) int a=2,b=2,c=2;10.定义a为整型变量,且设其初值为5,则表达式a+=a-=a*=a 的值为 ( )A)5 B)0 C)25 D)-511. 若变量已正确说明为int类型,要给a、b、c输入数据,以下正确的输入语句是()A) scanf(“%D%D%D”,a,b,c); B)scanf(“%d%d%d”,a,b,c);C) read(a,b,c); D)scanf(“%d%d%d”,&a,&b,&c);12.设x,y,z,k都是int 型变量,则执行表达式:x=(y=2,z=4,k=4)后,x的值为( ) A) 2 B)4 C)6 D)1213.若有定义语句 float x[6]; 则以下对x数组元素的正确引用是()A) x+2 B) &(x+2) C) *(x+2) D) *&x[6]14. 若有以下程序()main(){ int i=1,j=2,k=3;if(i++= =1&&(++j= =3||k++= =3))printf("%d %d %d\n",i,j,k);}程序运行后的输出结果是(A) 2 3 4 (B) 2 3 3 (C)2 2 3 (D) 1 2 315.程序运行后的输出结果是( )A)5 B)4 C)6 D)不确定main(){ int a=5,b=4,c=6,d;d=a>b?(a>c?a:c):(b);printf(“%d \ n”,d);}16.程序运行后的输出结果是( )A)a=2,b=1 B)a=1,b=1 C)a=1,b=0 D)a=2,b=2main(){ int x=1,y=0,a=0,b=0;switch(x){case 1: switch(y){case 0: a++; break;case 1: b++; break;}case 2: a++; b++; break;}printf(“a=%d,b=%d\ n”,a,b);}17.有以下程序段,其输出结果是()int x=3;do { printf(“%d”,x-=2); } while(!(--x));A) 死循环 B)3 0 C) 1 D) 1 -218.以下程序的输出结果的是 ( )A)11 B)10 C)9 D)101main(){ int i,j;for(j=10;j<11;j++){ for(i=9;i<j;i++)if(!(j%i)) break;if(i>=j-1) printf(“%d”,j); }}19.以下对一维数组st的正确说明是 ( )A) int st(10); B) int k=10,st[k];C) int k, st[k]; D) #define SIZE 8 int st[SIZE];20.C语言规定,函数返回值的类型是由()A)调用该函数时的主调函数类型决定 B)return语句中的表达式类型所决定C)调用该函数时系统临时决定 D)定义该函数时所指定的函数类型决定21.以下正确的数组定义语句是()A) int st[2][2]={1,2,3,4,5}; B) float st[3][]={{1},{2},{3}}; C) int st[2][3]={{1},{1,2},{1,2,3}}; D) int st[1][4]={4};22.以下程序段的输出结果是()char str[10]={‘s’,‘t’,‘u’,‘d’,‘e’,‘n’,‘t’};printf(“%d\n”,strlen(str));A) 7 B) 8 C) 10 D) 存在语法错误23.程序运行后的输出结果是()A)6,5,6,5 B)5,6,5,6 C)6,5,5,6 D)5,6,6,5main(){ int a=5,b=6,*p,*q,*r;p=&a; q=&b;r=p; p=q; q=r;printf(“%d,%d,%d,%d\n”,*p,*q,a,b);}24. 若用数组名作为实参,则传递给形参的是()A) 数组的首地址 B) 数组第一个元素的值C) 数组中全部元素的值 D) 数组元素的个数25. 若定义:enum weekday day;则下面除之外其他三者等价()A)day=(enum weekday)2; B)day=Tuesday;C)day=2; D)day=(enum weekday)(5-3);26. 若定义()struct student { int num; char name[20]; float score; } stu1, *ptr = &stu1;则下面除之外其他三者等价A)stu1.num B)ptr.num C)(*ptr).num D)ptr->num27. 以下程序的功能是()#include stdio.hmain(){ int i=0,n=0; char s[80],*p; p=s;strcpy(p, it s a book );for(; *p!= \0 ;p++)if (*p= = ) i=0;else if(i=0) { n++; i=1;}printf( n=%d\n ,n);}A) 统计字符串中的单词个数 B) 统计字符串中的空格个数C) 统计字符串中的字母个数 D) 统计字符串中的全部字符个数28.以下语句或语句组中,能正确进行字符串赋值的是()A)char *sp; *sp="right!"; B)char s[10];s="right!";C)char s[10];*s="right!"; D)char *sp="right!";29.设有以下定义int a[6][8],(*p)[8]=a; 能正确引用元素a[3][4]的是()A)*(*(p+3)+4) B)*(p+3)+4 C)*(*(p+4)+3) D)*(*(p+2)+3)30.在以下选项中,操作不合法的一组是( )。
《程序设计基础》期末模拟试题一
![《程序设计基础》期末模拟试题一](https://img.taocdn.com/s3/m/dd20498b970590c69ec3d5bbfd0a79563c1ed415.png)
《程序设计基础》期末模拟试题一一、填空题(每空2分,共20分)1.计算机系统中的软件包括______和______。
2.C语言中要改变循环语句的流程可以使用语句______,______和______。
3.常见的非线性结构包括______和______结构。
4.算法描述的常见方法是______,______和______。
二、单项选择题(每小题2分,共30分)1.现代计算机的内部对于数据采用的表示形式是()。
A.二进制B.八进制C.十进制D.十六进制2.当代计算机的体系结构称为“冯·诺依曼”体系,冯·诺依曼机的主要思想之一是()。
A.程序存储B.设计机器语言C.自动执行程序D.存储器为核心3.现代电子计算机诞生的理论基础是()。
A.图灵机B.图灵测试C.冯·诺依曼机D.邱奇论题4.CPU主要包括()。
A.运算器、控制器和寄存器B.运算器、控制器和存储器C.控制器D.运算器和存储器5.汇编程序的任务是()。
A.将汇编语言编写的程序转换为目标程序B.将汇编语言编写的程序转换为可执行程序C.将高级语言编写的程序转换为汇编语言程序D.将高级语言编写的程序转换为可执行程序6.C语言是()。
A.机器语言B.汇编语言C.高级语言D.目标语言7.在C语言中,字符串常量的定界符是()。
A.空格B.单引号C.双引号D.方括号8.在C语言中,不合法的int型常量是()。
A.32767B.0678C.0XABCD.32768L9.C语言的类别是()。
A.面向过程的程序设计语言B.面向问题的程序设计语言1C.面向对象的程序设计语言D.面向硬件的程序设计语言10.以下所列语句中,合法的语句是( )。
A.a=1,b=1B.++a;C.a=a+1=5;D.y=int(a)11.栈的逻辑结构是()。
A 集合B 线性结构C 树型结构D 图型结构12.下面4句结论中只有一句是错误的,它是()。
A.二叉树是树B.二叉树的左右子树的位置可以颠倒C.可以使用二叉树的思想对数值进行排序D.可以采用链表方式存储二叉树13.若按照一定的顺序依次访问树中的每一个结点,而且每个结点只被访问一次,则称这样的操作为______。
C语言程序设计期末练习题及答案(完美版)
![C语言程序设计期末练习题及答案(完美版)](https://img.taocdn.com/s3/m/d17f4854178884868762caaedd3383c4bb4cb4c5.png)
C语言程序设计期末练习题及答案一、选择题:1、一个C程序的执行是从()A、本程序的main函数开始,到本程序文件的最后一个函数结束B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C、本程序的main函数开始,到main函数结束D、本程序文件的第一个函数开始,到本程序main函数结束2、以下程序的运行结果为()main(){ini a= IOO,x= 10,y=20,ok I=5,ok2=0;if(x<y)if(y!=10)if(!okl)a=l;elseif(ok2)a=10;a=-l;printf("%d\rT,a);)A、1 B、0 C. -1 D、值不确定3、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行c2='A' + '6'-'3';后,ascii码值为()无答案A、B B、66 C、不确定的值D、1144、已知inia=12,语句a+=a—=a*=a;执行后,a的值为()A、a= -100 a= -120 C、a=0 D、a=125、下面有关for循环的正确描述是()A、for循环只能用于循环次数己知的循环B、for循环是先执行循环体语句,后判断表达式C、在for循环中,不能用break语句跳出循环体D、for循环的循环体语句中,可以包含多条语句,且必须用花括号括起来6、以下程序段()x= -1;do{x=x*x;}while(!x);A、是死循环B、循环执行两次C、循环执行一次D、有语法错误6、若有说明:inta[3][4];则对a数组元素的正确引用是()A、al2]l4]B、al 1,3]C、a[l + lJlO]D、a(2)(l)7、判断字符串a和b是否相等,应当使用()A、if(a==b) B> if(a=b) C> if(strcpy(a,b) D、if(slrcmp(a,b)==l)8、若i为整型变最,则以下循环执行次数为Ofor(i=2;i==0; )printf(w%d,,,i-);A、无限次B、0次C、1次D、2次9、若用数组名作为函数调用的实参,传递给形参的是()A、数组第一个元素的值B、数组中全部元素的值C、数组元素的个数D、数组的首地址10、以下叙述中不正确的是()A、预处理命令行都必须以#号开始B、在程序中凡是以#号开始的语句行都是预处理命令行C、C程序在执行过程中对预处理命令行进行处理D、预处理命令不占用程序的执行时间11、以下程序的运行结果是()#dcfine MIN(x,y) (x)<(y)?(x): (y)main(){int i=10,j=15,k;k=IO*MIN(i,j);printf(M%d\n,,,k);)A、10 B、15 C、100 D、15012、以下有关宏替换的叙述不正确的是()A、宏替换不占用运行时间B、宏名无类型C、宏替换只是字符替换D、宏名必须用大写字母表示13、若有以下宏定义:#define N 2#define Y(n) ((N+l)*n)则执行语句z=2*(N+Y(5));后的结果是()A、语句有错误B、z=34 C> z=70 D、z无定值14、已有定义int k=2; int *pl, *p2;且pl、p2均已指向变量k,下面不能正确执行的赋值语句是()A、k=*pl+*p2 B、p2=k C> pl=p2 D、k=*pl * (*p2)15、若有以下定义,则对a数组元素的正确引用是()int a[5], *p=a;A、*&a[5]B、a+2C、*(p+5)D、*(a+2)17、若有函数max(a,b),并且已使函数指针变量p指向函数max,当调用该函数时,正确的调用方式是OA、(*p)max(a,b);*pmax(a,b)C、(*p)(a,b)D、*p(a,b)18、若有以下说明语句,则对pup中sex域的正确引用方式是()struct pupil{char name[20];int sex;(pup,*p;p=&pup;A、p.pup.sex B、p->pup.sex C、(*p).pup.sex D、(*p).sex19、语句int(*ptr)();的含义是()A、ptr是指向一维数组的指针变量B、pir是指向int型数据的指针变量C、ptr是指向函数的指针,该函数返回一个int型数据D、ptr是一个函数名,该函数的返回值是指向ini型数据的指针20、若有以下说明语句:struct student{int age;int num;}std, *p;p=&std;则以下对结构体变量std中成员age的引用方式不正确的是()A、std.age B、p->age C、(*p).ageD、*p.age二、写出下列程序的运行结果或指明其完成的功能1、写出下面程序的运行结果main(){int t=1605,h,m;h=(t/100)%12;if(h==0)h=12;printf(“%d:”,h);m=t%100;if(mvlO)printf("O”);printf(“%d”,m);if(t<1200||t==2400)printf(w AM M);else printf(w PM,9);)4:05PM2、写出下面程序的运行结果main(){int a,b,c;int s,w,t;s=w=t=0;a= -l;b=3;c=3;if(c>0) s=a+b;if(a<=0){if(b>0)if(c<=0)w=a-b;}else if(c>0)w=a-b;else t=c;printf(w%d %d %d,,,s,w,t);}2003、写出下面程序的运行结果niain(){int ij,x=O;for(i=0;i<2;i++){x++;for(j=0;j<=3;j++){if(j%2==0) continue;x++;)x++;}printf(u x= % d\n”,x);)x=84、写出下面程序的运行结果int a=5; int b=7; main(){int a=4,b=5,c;c=plus(a,b);printf(u A+B=5 % d\n,,,c);)plus(int x,int y){int z;z=x+y;return(z);)A+B=95、写出下面程序的运行结果main(){increment();incrementO;incrementO;)increment(){static int x=O;x+=l;printf("%d\n",x);}1236、指明下面程序完成的功能int fac(int n){static int f=l;f=f*n;rcturn(f);)niain(){intj;for(j=l;j<=5;j++)printf(w%d!=%d\n,,j,fac(j));)输出1〜5的阶乘7、写出下面程序的运行结果#include “stdio.h"main()(int a[10]={ 2,4,6,8,10,12,14,16,18,20 }, *p=a,i ;for(i=0;i<2;i++)(printf("%d ”/p++);printf(<4%d ”/++p);printf(w%d ”,(%)++);printf(w\n w);)}2667 10 10三、完善程序1、下面程序的功能是打卬100以内个位数为6且能被3整除的所有数。
C语言程序设计期末考试试题及答案
![C语言程序设计期末考试试题及答案](https://img.taocdn.com/s3/m/be0fbf2aff4733687e21af45b307e87101f6f824.png)
C语言程序设计期末考试试题及答案一、选择题(每题2分,共20分)1. C语言中,下列哪个选项是合法的数据类型?A. intB. floatC. characterD. string2. 关于C语言中的变量,以下哪个说法是正确的?A. 变量可以在程序中的任何位置声明B. 变量在使用前必须先声明C. 变量不能重复声明D. 变量的作用域可以是全局的,但不能是局部的3. 在C语言中,以下哪个操作符用于取模?A. %B. /C.D. &4. 下面哪个函数用于动态分配内存?A. malloc()B. alloc()C. new()D. calloc()5. 在C语言中,以下哪个关键字用于定义结构体?A. structB. unionC. enumD. class二、填空题(每题2分,共20分)6. 在C语言中,标准输入输出头文件是_________。
7. 一个整型变量占用_________个字节。
8. 如果一个整型变量声明为`int a = 5;`,那么`printf("%d", a++);`的输出是_________。
9. 在C语言中,函数返回值的类型默认是_________。
10. 指针是一种特殊类型的变量,用于存储_________的地址。
三、编程题(共40分)11. 编写一个C程序,实现一个简单的计算器,包括加、减、乘、除四种运算。
12. 编写一个C程序,实现一个函数,该函数接受一个整数数组和一个整数n,返回数组中与n相等的元素个数。
13. 编写一个C程序,实现一个结构体`Student`,包含学生的姓名、学号和成绩。
编写一个函数,输入学生的信息并打印出来。
### 答案一、选择题答案1. A. int2. B. 变量在使用前必须先声明3. A. %4. A. malloc()5. A. struct二、填空题答案6. stdio.h7. 48. 59. int10. 变量三、编程题答案11. 计算器程序示例:```c#include <stdio.h>int main() {char operator;double firstNumber, secondNumber;printf("Enter an operator (+, -, , /): ");scanf("%c", &operator);printf("Enter two operands: ");scanf("%lf %lf", &firstNumber, &secondNumber);switch(operator) {case '+':printf("%.1lf + %.1lf = %.1lf", firstNumber, secondNumber, firstNumber + secondNumber);break;case '-':printf("%.1lf - %.1lf = %.1lf", firstNumber, secondNumber, firstNumber - secondNumber);break;case '':printf("%.1lf %.1lf = %.1lf", firstNumber, secondNumber, firstNumber secondNumber);break;case '/':if(secondNumber != 0.0)printf("%.1lf / %.1lf = %.1lf", firstNumber, secondNumber, firstNumber / secondNumber);elseprintf("Divide by zero situation.");break;default:printf("Error! operator is not correct");}return 0;}```12. 数组中与n相等的元素个数函数示例:```c#include <stdio.h>int countOccurrences(int arr[], int n, int size) {int count = 0;for (int i = 0; i < size; i++) {if (arr[i] == n) {count++;}}return count;}int main() {int arr[] = {1, 2, 3, 4, 5, 2, 2};int n = 2;int size = sizeof(arr) / sizeof(arr[0]);int count = countOccurrences(arr, n, size);printf("Number of occurrences of %d is %d", n, count);return 0;}```13. 学生信息结构体及打印函数示例:```c#include <stdio.h>typedef struct {char name[50];int studentID;float grade;} Student;void printStudentInfo(Student student) {printf("Name: %s\n", );printf("Student ID: %d\n", student.studentID); printf("Grade: %.2f\n", student.grade);}int main() {Student student;printf("Enter name: ");scanf("%s", );printf("Enter student ID: ");scanf("%d", &student.studentID); printf("Enter grade: ");scanf("%f", &student.grade);printStudentInfo(student);return 0;}```。
C语言程序设计期末测试题及答案(5套)
![C语言程序设计期末测试题及答案(5套)](https://img.taocdn.com/s3/m/b2052168b9f3f90f76c61bc7.png)
大学题库C语言程序设计期末模拟测试题及答案 2010年11月目 录期末模拟考试题(一) (3)期末模拟测试题(一)参考答案 (10)期末模拟考试题(二) (11)期末模拟测试题(二)参考答案 (18)期末模拟考试题(三) (19)期末模拟测试题(三)参考答案 (26)期末模拟考试题(四) (27)期末模拟测试题(四)参考答案 (34)期末模拟考试题(五) (35)期末模拟测试题(五)参考答案 (49)期末模拟考试题(一)一.选择题:2’*25=50’1.十进制数269转换成十六进制数是A)10E B)10D C)10C D)10B2. 若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是 for (i=5;i;i--)for(j=0;j<4;j++){...}A)20 B)25 C)24 D)303. 若有以下定义和语句:char *s1="12345",*s2="1234";printf("%d\n",strlen(strcpy(s1,s2)));则输出结果是A) 4 B)5 C)9 D)104. 若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能表示a数组元素的表达式是A) *p B) a[10] C) *a D) a[p-a]5.设有如下定义:int x=l,y=-1;,则语句:printf("%d\n",(x--&++y));的输出结果是A)1 B)0 C)-1 D)26.当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是A)c=b=a; B)(a=c)‖(b=c);C)(a=c)&&(b=c); d)a=c=b;7.以下程序的输出结果是A)10 1 9 2 B)9 8 7 6 C)10 9 9 0 D)10 10 9 1main( ){ int x=10,y=10,I;for(i=0;x8;y=++i)printf("%d,%d ",x--,y);}8. 下面程序的输出是main(){ char *s="121";int k=0, a=0, b=0;do { k++;if(k%2==0) {a=a+s[k]-'0';continue;}b=b+s[k]-'0';a=a+s[k]-'0';}while (s[k+1]);printf("k=%d a=%d b=%d\n",k,a,b);}A)k=3 a=2 b=3 B)k=3 a=3 b=2 C)k=2 a=3 b=2 D)k=2 a=2 b=39.下面程序的输出是main(){ unsigned a=32768;printf("a=%d\n",a);}A)a=32768 B)a=32767 C)a=-32767 D)a=-110. 若有以下定义:float x;int a,b;则正确的switch 语句是A)switch(x) B)switch(x){ case1.0:printf("*\n"); { case1,2:printf("*\n");case2.0:printf("**\n"); case3:printf("**\n");} }C)switch (a+b) D)switch (a+b);{ case 1:printf("\n"); { case 1:printf(."*\n");case 1+2:printf("**\n"); case 2:printf("**\n");} } 11.以下程序运行后,如果从键盘上输入ABCDE,则输出结果为A) 8 B)7 C)6 D)5# include# includefuch (char str [ ] ){ int num =0;while (*(str +num )!='\0') num ++;return(num );}main(){ char str [10],*p=str ;gets(p);printf("%d\n",func(p));}12.运行以下程序后,如果从键盘上输入china#,则输出结果为A) 2,0 B)5,0 C) 5,5 D)2,5# includemain( ){ int v1=0,v2=0;char ch ;while ((ch=getchar())!='#')switch (ch ){ case 'a':case 'h':default: v1++;case '0':v2++;}printf("%d,%d\n",v1,v2);13.以下程序运行后,输出结果是A) 49.5 B) 9.5 C)22.0 D)45.0# include# define PT 5.5# difine s(x) pt*x*xmain(){ int a=1,b=2;printf ("%4.lf/n",S(a+b));} 14.以下程序执行后a的值是A)4 B)1 C)0 D)运行时出错,a无定值main(){ int a,k=4,m=6,*p1=&k,*p2=&m;a=p1==&m;printf("%d\n",a);} 15.以下程序运行后,输出结果是A)84 B)99 C)95 D)44int d=1l ;fun (int p){ int d=5;d+=p++;printf("%d",d);}main(){ itn a=3;fun(a);d+=a++;printf("%d\n",d);} 16.下面程序的运行结果是:# include <stdio.h>main(){ int i,j,x=0;for(i=0;i<2;i++){ x++;for(j=0;j<=3;j++){ if(j%2) continue;x++;}x++;}printf(“x=%d\n”,x);}A) x=4 B)x=8 C)x=6 D)x=1217.以下程序运行后,输出结果是A) 1 B) 7 C)9 D)11fut (int **s,int p[2][3]){ **s=p[1][1];}main(){ int a[2][3]={1,3,5,7,9,11},*p;p=(int *)malloc(sizeof(int))lfut (&p,a);printf("%d\n",*p);}18.设有如下定义:int a=1,b=2,c=3,d=4,m=2,n=2;则执行表达式:(m=a>b)&&(n=c>d)后,n的值为A) 1 B)2 C)3 D)019.请读程序:# define LETTER 0main(){ char str[20]=”C Language”,c;int i;i=0;While((c=str[i])!=’\0’{ i++;# if LETTERif(c>=’a’&&c<=’z’)c=c-32;# elseif(c>=’A’&&c<=’Z’)c=c+32;# endifprintf(“%c”,c);}上面程序的运行结果是:A) C Language B) c languageC) C LANGUAGE D) c lANGUAGE20. 假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入:PROG ABCDEFGH IJKL<回车>,则输出结果为A) ABCDEFG B) IJHL C) ABCDEFGHIJKL D) IJKLABCDEFGHmain( int argc, char *argv[])){ while(--argc>0) printf("%s",argv[argc]);printf("\n");}21. 以下程序的输出结果是A) 1 B) 2 C) 3 D) 4long fun( int n){ long s;if(n= =1 || n= =2) s=2;else s=n-fun(n-1);return s;}main(){ printf("%ld\n", fun(3)); }22. 以下程序的输出结果是A) 16 B) 2 C) 9 D) 1#define SQR(X) X*Xmain(){ int a=16, k=2, m=1;a/=SQR(k+m)/SQR(k+m);printf("%d\n",a);}23.若有以下说明和语句:struct student{ int age;int num;} std,*p;p=&std;则以下对结构体变量std中成员age的引用方式不正确的是:A) std.age B) p->age C) (*p).age D) *p.age24.以下程序的输出结果是:struct stu{ int x;int *y;} *p;int dt[4]={ 10,20,30,40};struct stu a[4]={ 50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]}; main(){ p=a;printf(“%d,”,++p->x);printf(“%d,”,(++p)->x);printf(“%d\n”,++(*p->y));}A) 10,20,20 B) 50,60,21 C)51,60,21 D) 60,70,31 25.设有以下语句:char x=3,y=6,z;z=x^y<<2;则z的二进制值是:A)00010100 B)00011011 C)00011100 D)00011000二.判断题:1’*10=10’1.C语言规定在一个源程序中,main函数的位置必须在系统调用的库函数的后面。
《C程序设计基础》模拟考试题(含答案)
![《C程序设计基础》模拟考试题(含答案)](https://img.taocdn.com/s3/m/dc83018071fe910ef12df8eb.png)
《C程序设计基础》模拟考试题一、选择题(每题2分。
共23道选择题)1、关于C程序的叙述,错误的说法是(B)A、C程序总是从主函数开始执行B、C程序中定义的第一个函数是主函数C、在主函数中可以调用其他函数D、一个C程序可以包括多个函数2、C语言的基本数据类型包括(A)A、charB、s tructC、s tringD、typedef3、C语言的关键字是(A)A、whileB、p rintfC、m ainD、FILE4、错误的C标识符是(D)A、e2B、n ame_C、A_BD、2e5、在下列运算中,优先级最低的运算符是(B)A、= =B、=C、&&D、+6、设a、b和c都是int型变量,且a=7,b=8,c=9,则表达式(a*b)/c + 6 - 14%c的值是(B)A、6B、7C、8D、97、下列一维数组说明中,错误的是(C)A、int a[]={1,2,3};B、int a[5];C、int n=5, a[n];D、int a[5]={1,2,3};8、执行语句:printf(“a\nb”)输出的结果是(C)A、a\nbB、abC、第一行输出a,第二行输出bD、不能输出9、要表示年龄(age)在18到25之间,正确的表达式是(B)A、18<=age<=25B、18<=age && age<=25C、18<=age || age<=25D、18<=age and age<=2510、设有定义int a,*p;下列赋值语句中,正确的是(B)A、p=a;B、p=&a;C、p=*a;D、*p=&a;11、若已经定义char a[10]={“abcd”}, *p=a;则表达式*(p+1)的值是(C)A、abcdB、bcdC、bD、语法错误12、若已经定义struct stu{int a,b; } student; ,则下列叙述中正确的是(B)A、stu 是结构变量B、student 是结构变量C、student 是结构类型D、a和b是结构型变量13、设有定义int a[10], *p=a; 下列对数组元素a[1]的引用中,错误的是(B)A、p[1]B、*(++a)C、*(++ p)D、*(a+1)14、下列叙述中,错误的是(D)A、不同函数中可以使用相同的变量名B、全局变量和局部变量可以同名C、形式参数是局部变量D、main() 函数中定义的变量在整个程序中都可15、设有函数定义:void p(int x){printf(“%d”, x);} 则正确的函数调用是(A)A、p(3);B、a=p(3);C、printf("%d"; p(3));D、p(int x);16、有如下程序段union u{int a; int b; float c;}vu; vu.a=1; vu.b=2; vu.c=3;则vu.a的值是(D)A、1B、2C、3D、以上都不对17、设有如下定义:int x=2 ,y; int fun(int *a){return *a+1;}下列函数调用中,实际参数正确的是(B)A、y=fun(x);B、y= fun (&x);C、y=fun(*x);D、y=fun(a);18、设有宏定义#define N 3+2,则语句printf(“%d”, N*N);的输出结果为(A)A、11B、25C、10D、3;519、执行scanf(“%d+%d”,&a,&b);时,正确的键盘输入是(C)A、3,5B、3 5C、3+5D、3;520、执行if(a<=b){a=b;b=a;}else{a++;++b;}语句后,正确的说法是(C)A、当条件满足时变量a和b的值对换B、当条件满足时变量a和b的值不变C、当条件不满足时变量a和b的值各增加1D、当条件不满足时变量b的值增加1,a不增加21、设已定义int a=3, b=4; 执行if(a=b)printf(“aaa\n”);else printf(“bbb\n”);语句后,正确的说法是(A)A、输出aaaB、输出bbbC、编译时会出错D、运行时会出错22、设有说明语句int x=1, y=2; 则执行表达式x=y= = 3后,变量x的值是(A)A、0B、1C、2D、323、已定义float f=1.2;执行语句printf(“%d\n”,f);正确的说法是(D)A、输出 1.2B、输出 1C、语法错误D、可以输出,但不是1.2和1二、阅读题。
程序设计基础1(本科)期末考试试题及参考答案
![程序设计基础1(本科)期末考试试题及参考答案](https://img.taocdn.com/s3/m/544a170c4a35eefdc8d376eeaeaad1f346931195.png)
程序设计基础1(本科)期末考试试题及参考答案程序设计基础复习题1(本科)一选择题(7分,每小题0.5分)1.C语言源程序的基本单位是()。
A 过程B 函数C 子程序D 标识符2.下列程序的输出结果是()。
5main( ){ int a=7,b=5;printf("%d\n",b=b/a);}A 5B 1C 0 D不确定值3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是()。
A 7B 8C 9D 24.设a为int型变量,执行下列赋值语句后,a的取值分别是()。
a=125.534; a=(int)125.521%4; a=5<<2;A 125,31,1B 125,1,20C 125,31,20D 125.534,2,205.设有如下程序段,下面描述中正确的是()。
int k=10; while(k=0) k=k-1;A 循环执行一次 B循环是无限循环 C循环体语句一次也不执行 D 循环体语句执行一次6.以下程序的输出结果为()。
int i;void prt( ){ for(i=5;i<8;i++) printf("%c",'*');printf("\t");}main( ){ for(i=5;i<=8;i++) prt( );}A ***B *** *** *** ***C *** ***D * * *7.在C语言程序中,以下说法正确的是()。
A函数的定义可以嵌套,但函数的调用不可以嵌套B函数的定义不可以嵌套,但函数的调用可以嵌套C函数的定义和函数的调用都不可以嵌套D函数的定义和函数的调用都可以嵌套8.以下函数调用语句中含有()个实参。
func((e1,e2),(e3,e4,e5));A 2B 3C 5D 语法错误9.以下程序的输出结果为()。
#define ADD(x) x*xmain( ){ int a=4,b=6,c=7,d=ADD(a+b)*c;printf("d=%d",d);}A d=70B d=80C d=140D d=70010.已知职工记录描述如下,在Turbo C中,系统为变量w分配()字节的空间。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、单项选择题,请将正确答案填在横线处。
(每小题2分,共20分)1. 一个算法应该具有"确定性"等5个特性,下面对另外4个特性的描述中错误的是______。
A.有零个或多个输入B.有零个或多个输出C.有穷性D.可行性2.下述标识符中,______不是合法的标识符。
A.A#CB.getchC.vodD.ab3. 下列关于单目运算符++.--的叙述中正确的是______。
A.它们的运算对象可以是任何变量和常量B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量D.它们的运算对象可以是char型变量.int型变量和float型变量5. 以下程序的输出结果是______。
#include<stdio.h>void main(){ int a=5,b=4,c=6,d;printf("%d\n",d=a>c?(a>c?a:c):(b));}A.5B.4C.6D.不确定6. 有以下程序main(){int a=0,b=0,c=0,d=0;if(a=1) b=1;c=2;else d=3;printf(“%d,%d,%d,%d\n”,a,b,c,d);}程序输出______。
A.0,1,2,0B. 0,0,0,3C.1,1,2,0D.编译有错7. C语言中,下列叙述正确的是______。
A.不能使用do-while语句构成的循环B.do-while语句构成的循环,必须用break语句才能退出C.do-while语句构成的循环,当while语句中的表达式值为非零时结束循环D.do-while语句构成的循环,当while语句中的表达式值为零时结束循环8. 若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是______。
A.函数的实参和其对应的形参共占同一存储单元B.形参只是形式上的存在,不占用具体存储单元C.同名的实参和形参占同一存储单元D.函数的形参和实参分别占用不同的存储单元9. 有如下程序#define N 2#define M N+1#define NUM 2*M+1main(){ int i;for(i = 1; i <= NUM; i++)printf("%d\n",i);}该程序中的for循环执行的次数是______。
A.5B.6C.7D.811. 以下能正确定义一维数组的选项是______。
A.int a[5]={0,1,2,3,4,5};B. char a={'A','B','C'};C. char a[]={0,1,2,3,4,5};D.int a[5]="0123";13. 若有以下说明:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则值为6的表达式是______。
A.p+5B.*(p+6)C.*p+=5D. *p+614.以下叙述中正确的是______。
A.构成C程序的基本单位是函数B.可以在一个函数中定义另一个函数C.main()函数必须放在其它函数之前D.所有被调用的函数一定要在调用之前进行定义15. 已有定义:char a[]=”xyz”,b[]={‘x’,’y’,’z’};,以下叙述正确的是_____。
A.数组a和b的长度相同 B.a数组长度小于b数组长度C.a数组长度大于b数组长度 D.上述说法都不对二、阅读程序,在每小题后面写出程序的运行结果。
(每题4分,共20 分)1.有如下程序:#include <stdio.h>void main(){ static int a[3][3]={{3,2,1},{4,5,6},{-2,9,1}};int i,j,sum=0;for(i=0;i<3;i++)for(j=0;j<3;j++)if(i==j) sum=sum+a[i][j];printf("sum=%d\n",sum);}运行结果:2.有如下程序:#include <stdio.h>fun(int a,int b){ int i,p=1;for(i=1;i<=b;i++)p=p*a;return(p);}void main(){ int x=5;printf("%d\n",fun(x,3));}运行结果:3.有如下程序:#include <stdio.h>void findmin (int *s,int t,int *k){ int p;for(p=0,*k=p;p<t;p++)if(s[p]<s[*k])*k=p; }void main(){ int a[10]={65,32,21,43,12,8,67,87,9,10};int i,*k=&i;findmin(a,10,k);printf("%d,%d\n",*k,a[*k]);}运行结果:4.有如下程序:#include <stdio.h>struct s{int n;int a[20];};void f(int *a,int n){ int i;for(i=0;i<n-1;i++)a[i]+=i;}void main(){ int i;struct s s={10,2,3,1,6,8,7,5,4,10,9};f(s.a,s.n);for(i=0;i<s.n;i++)printf("%d,",s.a[i]);printf("\n");}运行结果:5.有如下程序:#include <stdio.h>struct STU{ char name[10];int num;float totalscore;};void f(struct STU *p){ struct STU s[2]={{"sundan",20044,550},{"penghua",20045,537}},*q=s;++p; ++q; *p=*q;}void main(){ struct STU s[3]={{"yangsan",20041,703},{"lisiguo",20042,580}};f(s);printf("%s %d %3.0f\n",s[1].name,s[1].num,s[1].totalscore);}运行结果:三、完善程序,在横线上填上完整的语句,使程序完成指定的功能。
(每空2分,共20分)1.输出100到999之间能被3和7同时整除的数以及它们的个数#include <stdio.h>void main(){ int k,count=0;for(k=100;k<=999;k++)if(_________________________){ printf("%4d",k);_______________; }printf("%d",count);}2.译密码。
为使电文保密,往往按一定规律将其转换成密码,收报人再按约定的规律将其译回原文。
可以按以下规律将电文变成密码:将字母A变成其后的第4个字母,字母W变成字母A,X变成B,Y变成C,Z变成D。
#include <stdio.h>void main(){ char c;while((c=getchar())!='\n'){ if((c>='a'&&c<='z')||(c>='A'&&c<='Z')){ c=____________;if(c>'Z'&&c<='Z'+4||c>'z')c=________________; }printf("%c",c); }printf("\n");}3.判断n是否是素数。
#include <math.h>#include <stdio.h>void main(){ int n,i,k;scanf("%d",&n);______________;for(i=2;i<=k;i++)if(n%i==0)______________;if(i>=k+1) printf("%d is a prime\n",n);else printf("%d is not a prime\n",n);}4.函数功能:从s所指字符串中,找出t所指子串的个数作为函数值返回。
例如当s所指字符串中的内容为:“abcdabfab”,t所指字符串的内容为:“ab”,则函数返回值为3。
#include <stdio.h>#include <string.h>int fun(char *s,char *t){ int n=0;char *p,*r;while(*s){ p=s;r=t;while(*r)if(_________________){ r++;p++;}elsebreak;if(_______________)n++;s++;}______________;}void main(){ char s[50],t[50];int m;printf("\nPlease enter string S:");scanf("%s",s);printf("\nPlease neter substring t:");scanf("%s",t);m=fun(s,t);printf("\nThe result is : m=%d\n",m);}四、程序改错,根据程序的功能,找出程序中的错误并改正。
(每处错误2分,共20分)1.用选择法对10个整数按由大到小顺序排序。
(1)#include <stdio.h>(2)void sort(int x[],int n)(3){int i,j,k,t;(4) for(i=0;i<n-1;i++)(5) { k=0;(6) for(j=i+1;j<n;j++)(7) if(x[j]>x[k])(8) k=j;(9) if(k!=i)(10) {t=x[i];(11) x[i]=x[k];(12) x[k]=t;}}}(13)void main()(14){ int *p,i,a[10];(15) p=&a;(16) for(i=0;i<10;i++)(17) scanf("%d",p);(18) p=a;(19) sort(p,10);(20) for(i=0;i<10;i++)(21) {printf("%d ",p);(22) p++;}}错误1:5改正1:k=i;错误2:17改正2:scanf("%d",p++);错误3:21改正3:{printf("%d ",*p);2.求广义费波纳级数的第n项。