C语言程序设计第2阶段练习题 江南大学机考题库及答案
- 格式:doc
- 大小:42.50 KB
- 文档页数:13
c 二级考试试题和答案及分析**C 二级考试试题和答案及分析**一、选择题(每题2分,共40分)1. 在C语言中,以下哪个选项是正确的整型常量表示?A. 0x12B. 1.5e2C. 0123D. 1.23**答案:A****分析:**在C语言中,0x12是正确的十六进制表示,1.5e2是浮点数表示,0123是八进制表示,而1.23是浮点数表示。
2. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. _variableD. variable-2**答案:B, C****分析:**在C语言中,标识符可以以字母、下划线开头,但不能以数字开头。
因此,2variable和variable-2都是不合法的,而variable2和_variable是合法的。
3. 在C语言中,以下哪个选项是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello" "World!"D. 'Hello' 'World!'**答案:A, C****分析:**在C语言中,字符串字面量需要用双引号括起来,因此A选项是正确的。
C选项中,两个字符串字面量之间没有加号,它们会被编译器自动连接起来,也是正确的。
4. 下列哪个选项是C语言中的合法数组声明?A. int array[5];B. int array[];C. int array[5] = {1, 2, 3, 4, 5};D. int array = {1, 2, 3, 4, 5};**答案:A, B, C****分析:**在C语言中,A选项和C选项都是合法的数组声明。
B选项声明了一个未指定大小的数组,这也是合法的。
D选项是错误的,因为它试图声明一个整型变量而不是数组。
5. 在C语言中,以下哪个选项是正确的函数声明?A. int add(int x, int y);B. int add();C. int add(int, int);D. int add(int x, y);**答案:A, C****分析:**在C语言中,函数声明需要指定参数的类型和数量。
c语言二级考试试题及答案C语言二级考试试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言中数组的描述,正确的是:A. 数组名是一个变量名B. 数组名是一个常量C. 数组名是一个指针D. 数组名是一个函数答案:B2. 以下哪个是C语言中的合法变量名?A. 2variableB. variable-nameC. variable_nameD. variable name答案:C3. 在C语言中,以下哪个是正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello World" + "Hello World"D. "Hello\nWorld"答案:D4. C语言中,以下哪个不是标准输入输出库函数?A. printf()B. scanf()C. getchar()D. puts()答案:C5. 下列哪个是C语言中的条件语句?A. ifB. switchC. forD. while答案:A6. C语言中,以下哪个是正确的函数定义?A. int function_name(int x, int y) { /* ... */ }B. int function_name(int x, int y);C. int function_name(int x, y) { /* ... */ }D. int function_name(int x; int y) { /* ... */ }答案:A7. 在C语言中,以下哪个是正确的递归函数调用?A. function_name(x)B. function_name(x, y)C. function_name(function_name(x))D. function_name(&x)答案:C8. 在C语言中,以下哪个是正确的结构体定义?A. struct person { int age; char name[50]; };B. struct person { int age; char name[50] }C. struct person { int age; char name[50]; }D. struct person { int age; char name[50] } person;答案:A9. 在C语言中,以下哪个是正确的指针声明?A. int *ptr;B. int ptr*;C. *int ptr;D. int * ptr;答案:A10. 下列哪个是C语言中的位运算符?A. &&B. ||C. &D. ++答案:C二、填空题(每题2分,共10分)1. C语言中,使用________运算符可以实现两个整数的按位与操作。
计算机二级c语言考试题库及答案在计算机二级考试的题库中,有哪些与c语言相关的题目呢?下面是店铺给大家整理的计算机二级c语言考试题库及答案,供大家参阅!计算机二级c语言考试题库一、单选题1). 若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是( )A.++x,y=x--B.x+1=yC.x=x+10=x+yD.double(x)/102). 下列叙述中正确的是( )A.一个算法的空间复杂度大,则其时间复杂度也必定大B.一个算法的空间复杂度大,则其时间复杂度必定小C.一个算法的时间复杂度大,则其空间复杂度必定小D.算法的时间复杂度与空间复杂度没有直接关系3). 待排序的关键码序列为(15,20,9,30,67.65,45,90),要按关键码值递增的顺序排序,采取简单选择排序法,第一趟排序后关键码15被放到第( )个位置。
A.2B.3C.4D.54). 以下结构体类型说明和变量定义中正确的是( )A.typedef struct { int n; char c; } REC; REC t1,t2;B.struct REC ; { int n; char c; }; REC t1,t2;C.typedef struct REC; { int n=0; char c=′A′; } t1,t2;D.struct { int n; char c; } REC; REC t1,t2;二、程序填空题函数fun的功能是:输出a所指数组中的前n个数据,要求每行输出5个数。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANKl.C中。
不得增行或删行,也不得更改程序的结构!三、程序设计题请编写函数fun,函数的功能是查找X在s所指数组中下标的位置,并作为函数值返回,若x不存在,则返回-l。
注意:部分源程序在文件PROG1.C文件中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
计算机二级c语言试题题库及答案一、单项选择题(每题2分,共20分)1. 在C语言中,用于定义变量的关键字是()。
A. defineB. varC. intD. let答案:C2. 下列关于C语言函数的描述,不正确的是()。
A. 函数可以没有参数B. 函数可以返回值C. 函数必须有返回值D. 函数可以嵌套定义答案:C3. 以下哪个选项不是C语言中的运算符()。
A. %B. &&C. ++D. :答案:D4. 在C语言中,用于定义一个结构体的关键字是()。
A. structB. unionC. enumD. typedef答案:A5. C语言中,用于表示逻辑与的运算符是()。
A. &&B. ||C. !D. =答案:A二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型数组的语句是:int array[10]; 其中array[0]的值默认为____。
答案:02. 如果一个函数的返回类型是int,那么在函数体中必须包含一条____语句。
答案:return3. 在C语言中,用于计算字符串长度的函数是____。
答案:strlen4. C语言中,用于将字符数组转换为字符串的字符是____。
答案:'\0'5. 当使用指针变量时,必须先对其进行____。
答案:初始化三、编程题(每题10分,共20分)1. 编写一个C语言函数,实现两个整数的交换。
```cvoid swap(int *a, int *b) {int temp = *a;*a = *b;*b = temp;}```2. 编写一个C语言程序,计算并输出100以内所有偶数的和。
```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("Sum of even numbers from 1 to 100 is: %d\n", sum); return 0;}```四、简答题(每题10分,共40分)1. 简述C语言中指针和数组的关系。
1.若i,j和k都是int型变量,则表达式(i=4,j=16,k=32,i=j)的值为A. 4B. 16C. 32D. 522.若有函数内部说明:int a[3][4];则数组a中各元素A. 可在程序的运行阶段得到初值0B. 可在程序的编译阶段得到初值0C. 不能得到确定的初值D. 可在程序的编译或运行阶段得到初值03.一个C语言程序是由A. 一个主程序和若干子程序组成B. 函数组成C. 若干过程组成D. 若干子程序组成4.若有说明 int a[2][4];则a数组元素的非法引用是A. a[0][2*1]B. a[1][3]C. a[4-3][0]D. a[0][4]5.阅读下面程序,则执行后的输出结果是___。
#include "stdio.h"main(){int x,y,z;x=1;y=2;z=3;if(x>y)if(x>z)printf("%d",x);else printf("%d",y);printf("%d\n",z);}A. 0B. 1C. 2D. 36.下面程序的输出结果为main(){ int a,b;b=(a=3*5,a*4,a*5);printf("%d",b ;}A. 60B. 75C. 65D. 无确定值7.下列选项中不是结构化程序基本结构的是A. 顺序结构B. 跳转分支结构C. 选择结构D. 循环结构8.所有C函数的结构都包括的三部分是A. 语句、花括号和函数体B. 函数名、语句和函数体C. 函数名、形式参数和函数体D. 形式参数、语句和函数体9.设int a=5,b=6,表达式(--b==6)?++a:--b的值是___A. 5B. 6C. 7D. 410.下列叙述中不是C语言的特点的是______。
A. 简洁、紧凑,使用方便、灵活,易于学习和应用B. C语言是面向对象的程序设计语言C. C语言允许直接对位、字节和地址进行操作D. C语言数据类型丰富、生成的目标代码质量高11.下列关于C语言注释的叙述中错误的是______。
江苏省计算机二级c语言机考试题及答案一、选择题1. 下列关于C语言的描述中,错误的是:A. C语言是一种高级语言B. C语言是一种面向过程的语言C. C语言源于B语言D. C语言是一种解释型语言答案:D. C语言是一种解释型语言2. 在C语言中,可以用于定义宏的命令是:A. #ifB. #defineC. #includeD. #endif答案:B. #define3. 在C语言中,标识符的命名规则中,不允许使用的符号是:A. 下划线(_)B. 感叹号(!)C. 加号(+)D. 美元符号($)答案:B. 感叹号(!)4. C语言中的运算符中,以下优先级最高的是:A. 关系运算符B. 逻辑运算符C. 赋值运算符D. 算术运算符答案:C. 赋值运算符5. 下列程序中,有语法错误的是:A.```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```B.```c#include <stdio.h>int main() {printf("Hello, World!\n") return 0;}```C.```c#include <stdio.h>int main() {printf("Hello, World!\n"); return;}```D.```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;```答案:B.```c#include <stdio.h>int main() {printf("Hello, World!\n")return 0;}```二、填空题1. 下列程序的输出结果是______:```c#include <stdio.h>int main() {int a = 5;printf("%d", a++);printf("%d", ++a);return 0;}```答案:562. 下列程序的输出结果是______:```c#include <stdio.h>int main() {int a = 2;int b = 3;int c = a | b;int d = a & b;printf("%d\n", c);printf("%d\n", d);return 0;}```答案:3, 2三、编程题编写一个程序,输出1~100之间所有能同时被3和5整除的数,并计算这些数的平均值。
c二级考试试题及答案一、选择题(每题2分,共40分)1. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. returnD. function答案:A2. 下列关于C语言中变量作用域的描述,正确的是:A. 全局变量可以被所有函数访问B. 局部变量只能在定义它的函数内访问C. 静态变量的生命周期是整个程序D. 所有选项都正确答案:D3. 在C语言中,以下哪个运算符用于取模运算?A. %B. /C. *D. -答案:A4. 以下哪个选项是C语言中正确的注释方式?A. // 这是注释B. /* 这是注释 */C. // 这是注释/* 这是注释 */D. # 这是注释答案:B5. 在C语言中,以下哪个选项是正确的字符串定义方式?A. char str[] = "Hello";B. char str[] = 'Hello';C. char str[] = {"Hello"};D. char str = "Hello";答案:A6. C语言中,以下哪个函数用于将一个浮点数转换为字符串?A. sprintfB. printfC. scanfD. strcat答案:A7. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A8. 下列关于C语言中数组的描述,错误的是:A. 数组名是一个常量指针B. 数组的大小在编译时确定C. 数组的下标从0开始D. 数组可以存储不同类型的数据答案:D9. 在C语言中,以下哪个选项是正确的文件操作函数?A. fopenB. fcloseC. freadD. 所有选项都是答案:D10. C语言中,以下哪个函数用于获取当前系统时间?A. timeB. localtimeC. mktimeD. gmtime答案:A二、填空题(每题2分,共20分)1. 在C语言中,___________关键字用于定义一个宏。
江南大学现代远程教育2012年上半年第二阶段测试卷考试科目:《计算机语言(C)》第7章至第9章(总分100分)时间:90分钟_ ___学习中心(教学点) 批次: 层次:专业: 计算机科学与技术 学号: 身份证号:姓名: 得分:一.选择题(每题2分,共30分)1.变量的有效范围与其定义位置有关,(B ),其作用域在整个源程序文件中都有效。
A.在第一个函数中定义的变量B.在定义第一个函数之前所定义的变量C.在主函数中定义的变量D.在函数中定义的静态变量2.C语言标准库函数“strcat(strcpy(STR1,STR2),STR3)”的功能是( C )。
A.将串STR1复制到串STR2中后再连接至串STR3之后B.将串STR1连接至STR2之后再复制至串STR3之后C.将串STR2复制到串STR1串后再将串STR3连接到串STR1 之后D.将串STR2连接到串STR1之后再将串STR1复制到串STR3串3. 以下正确的说法是( C)。
A. 定义函数时,形参的类型说明可以放在函数体内B. return后边的值不能为表达式C. 如果函数值的类型与返回值类型不一致,以函数值类型为准D.如果形参与实参类型不一致,以实参类型为准4.以下函数调用中有( A )个实参。
expd((a1,a2,a3),(a4,a5),a7,a8)A.4个B.3个C.8个D.5个5.对于C语言的函数,下列叙述中正确的是( A )。
A.函数的定义不能嵌套,但函数调用可以嵌套B.函数的定义可以嵌套,但函数调用不能嵌套C.函数的定义和调用都不能嵌套D.函数的定义和调用都可以嵌套6.编译预处理包括( A )。
A.文件包含、宏定义和条件编译B.构造工程文件C.语句注释D.编辑源程序7.以下叙述中不正确的是( C )。
A.一个变量的作用域完全取决于变量说明语句的位置B.外部变量可以在函数以外的任何位置定义C.内部变量的生存期只限于本次函数调用,无法将内部变量的值保存至函数下一次调用D.用static说明—个外部变量是为了限制其它编译单位的引用8.以下有关宏替换的叙述不正确的是( D )。
江南大学现代远程教育第二阶段练习题考试科目:《C语言程序设计》第七章至第九章(总分100分)学习中心(教学点)批次:层次:专业:学号:身份证号:姓名:得分:一、单项选择题(本题共20小题,每小题2分,共40分。
)1、有以下程序main(){ int p[7]={11,13,14,15,16,17,18},i=0,k=0;while(i<7&&p[i]%2){k=k+p[i];i++;}printf("%d\n",k);}执行后输出结果是()。
A、58B、56C、45D、242、以下叙述中正确的是()。
A、全局变量的作用域一定比局部变量的作用域范围大B、静态(static)类别变量的生存期贯穿于整个程序的运行期间C、函数的形参都属于全局变量D、未在定义语句中赋初值的auto变量和static变量的初值都是随机值3、程序如下:#define N 5#define M1 N*3#define M2 N*2main(){ int i;i=M1+M2; printf(“%d\n”,i);}程序编译后运行的输出结果是()。
A、10B、20C、25D、304、有如下程序void f(int x,int y){ int t;if(x<y){ t=x; x=y; y=t; }}main(){ int a=4,b=3,c=5;f(a,b); f(a,c); f(b,c);printf("%d,%d,%d\n",a,b,c);}执行后输出结果是()。
A、 3,4,5B、 5,3,4C、 5,4,3D、 4,3,55、有以下程序main(){ char s[]="\n123\\";printf("%d,%d\n",strlen(s),sizeof(s));}执行后输出结果是()。
A、赋初值的字符串有错B、 6,7C、 5,6D、 6,66、若已定义的函数有返回值,则以关于该函数调用的叙述中错误的是()。
江南大学网络教育第二阶段练习题
考试科目:《C语言程序设计》第章至第章(总分100分)
__________学习中心(教学点)批次:层次:
专业:学号:身份证号:
姓名:得分:
一单选题 (共20题,总分值40分,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。
)
1. 下述对C语言字符数组的描述中错误的是()。
(2 分)
A. 字符数组可以存放字符串
B. 字符数组的字符串可以整体输入、输出
C. 可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
D. 不可以用关系运算符对字符数组中的字符串进行比较
2. 有以下程序
void f(int v , int w)
{ int t;
t=v;v=w;w=t;
}
main( )
{ int x=1,y=3,z=2;
if(x>y) f(x,y);
else if(y>z) f(y,z);
else f(x,z);
printf(“%d,%d,%d\n”,x,y,z);
}
执行后输出结果是()。
(2 分)
A. 1,2,3
B. 3,1,2
C. 1,3,2
D. 2,3,1
3. 有语句char str1[10],str2[10]={"books"};则能将字符串books赋给数组str1的正确语
句是()。
(2 分)
A. str1={"Books"};
B. strcpy(str1,str2);
C. str1=str2;
D. strcpy(str2,str1);
4. 若有变量说明:char s,s1[20];执行语句:s="student";s1=s;正确的叙述是()。
(2 分)
A. 二个语句都不正确
B. s所指向的字符串和s1的值都是"student"
C. 第一个语句正确,而第二个语句不正确
D. 第二个语句正确,而第一个语句不正确
5. C语言的编译系统对宏命令是()时候处理的。
(2 分)
A. 在程序运行
B. 在程序连接时
C. 和源程序其它C语言同时进行编译时
D. 对源程序其它成份正式编译之前进行处理的
6. 下列说法不正确的是()。
(2 分)
A. 宏替换不占用运行时间
B. 宏无类型
C. 宏替换只是字符替换
D. 宏名必须用大写字母表示
7. 若有以下说明和语句,则输出结果是()。
char sp[]="\x69\082\n";
printf("%d",strlen(sp));(2 分)
A. 3
B. 5
C. 1
D. 字符串中有非法字符,输出值不定
8. 以下函数调用中有()个实参。
expd((a1,a2,a3),(a4,a5),a7,a8)
(2 分)
A. 4个
B. 3个
C. 8个
D. 5个
9. 执行完下面的程序段后,屏幕显示的内容为()。
main()
{ int a=2,i;
for(i=0;i<3 i="" printf="" d="" f="" a="">
}
f(int a)
{ int b=0;
static int c=3;
b++;
c++;
return(a+b+c);
}
(2 分)
A. 777
B. 7 7 7
C. 789
D. 7 8 9
10. 若有宏定义与变量说明如下:
#define X 5
#define Y X+1
#define Z Y*X/2
int a; a=Y;
则执行以下printf语句后输出的结果是()。
Printf("%d %d\n",Z,--a);(2 分)
A. 7 5
B. 12 6
C. 12 5
D. 7 6
11. 函数调用可以……,以下错误的是()。
(2 分)
A. 出现在执行语句中
B. 出现在一个表达式中
C. 作为一个函数的实参
D. 作为一个函数的形参
12. C语言中函数能否嵌套调用和递归调用?以下说法正确的是()。
(2 分)
A. 二者均不可
B. 前者可,后者不可
C. 前者不可,后者可
D. 二者均可
13. C语言允许函数值类型缺省定义,此时该函数值隐含的类型是()。
(2 分)
A. float型
B. int型
C. long型
D. double型
14. 有两个字符数组a,b,则以下正确的输入语句是()。
(2 分)
A. gets (a,b);
B. scanf ("%s%s",a,b);
C. scanf ("%s%s",&a,&b);
D. gets ("a"),gets ("b");
15. 数组名作为参数传递给函数,此时作为实在参数的数组名被处理为()。
(2 分)
A. 该数组的长度
B. 该数组的元素个数
C. 该数组中各元素的值
D. 该数组的首地址
16. 以下能正确定义一维数组的选项是()。
(2 分)
A. int num [];
B. #define N 100
int num [N];
D. int N=100;
C. int num[0..100];
int num[N];
17. 若程序中定义了以下函数
double myadd(double a,double B)
{ return (a+B) ;}
并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()。
(2 分)
A. double myadd(double a,B);
B. double myadd(double,double);
C. double myadd(double b,double A);
D. double myadd(double x,double y);
18. 以下描述中,正确的是()。
(2 分)
A. 调用函数时,实参可以是表达式
B. 调用函数时,将为形参分配内存单元
C. 调用函数时,实参与形参的原型必须一致
D. 调用函数时,实参与形参可以用内存单元
19. 在C语言中,引用数组元素时,其下标的数据类型允许是()。
(2 分)
A. 整型常量
B. 整型表达式
C. 整型常量或整型表达式
D. 任何类型的表达式
20. 变量的有效范围与其定义位置有关,(),其作用域在整个源程序文件中都有效。
(2 分)
A. 在第一个函数中定义的变量
B. 在定义第一个函数之前所定义的变量
C. 在主函数中定义的变量
D. 在函数中定义的静态变量
二填空题 (共7题,总分值28分 )
21. 以下程序运行后的输出结果是 _________ 。
#define SQR(x) x*x
main()
{ int a,k=3;
a=++SQR(k+1);
printf("%d\n",a);}
(4 分)22. 有以下程序
void swap1(int c[])
{ int t;
t=c[0];c[0]=c[1];c[1]=t;
}
void swap2(int c0,int c1)
{ int t;
t=c0;c0=c1;c1=t;。