安徽大学C语言期末试卷含答案

合集下载

大学C语言期末考试试题(含答案)

大学C语言期末考试试题(含答案)

第一章C语言概述1.1 选择题*1.1一个C程序的执行是从 A 。

A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束参考答案:A参考分析:C语言总是从main函数开始,main函数结束。

但是C 语言中存在一个exit(0)函数,它可以使得程序在任何时候、任何位置结束程序的运行。

如果不考虑exit(0)等函数的特殊作用,C则总是在main函数结束。

*1.2以下叙述正确的是 C 。

A)在C程序中,main函数必须位于程序的最前面B)在C程序的每一行只能写一条语句C)C语言本身没有输入输出语句D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误参考答案:C参考分析:C程序对main函数的位置没有任何要求;其书写格式自由,一行可以写多条语句,一条语句(多关键字语句)可以写在多行;C语言忽略注释,把注释看作是一个空格,不会对注释中的内容进行语法检查。

因此,如果注释中存在错误,系统是不可能发现的。

另外,C语言的I/O操作均通过函数实现,系统本身未提供相应的语句。

1.3以下叙述不正确的是 D 。

A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面参考答案:D参考分析:C语言中,注释语句的位置是任意的,当然,它不能破坏标识符的完整性。

C语言只是将一个注释看作是一个空格,因此对注释内的任何错误都不作检查。

1.4 C语言规定:在一个源程序中,main函数的位置 C 。

A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后参考答案:C*1.5一个C语言程序是由 B 。

A)一个主程序和若干个子程序组成B)若干函数组成C)若干过程组成D)若干子程序组成参考答案:B参考分析:通常许多语言程序由主程序和子程序构成,但是C语言是函数式语言,整个程序由众多函数组成。

安徽大学c语言期末考试复习考点汇总

安徽大学c语言期末考试复习考点汇总

安徽大学C语言程序设计期末考试复习一、选择题能将高级语言编写的源程序转换成目标程序的是______。

A) 编辑程序B) 编译程序C) 解释程序D) 链接程序您的答案为:参考答案为:BB以下选项中合法的用户标识符是______。

A) long B) _2Test C) 3Dmax D) A.dat您的答案为:参考答案为:BB以下叙述正确的是A) 可以把define和if定义为用户标识符B) 可以把define定义为用户标识符,但不能把if定义为用户标识符C) 可以把if定义为用户标识符,但不能把define定义为用户标识符D) define和if都不能定义为用户标识符参考答案为:B您的答案为:B以下叙述正确的是A) C语言比其他语言高级B) C语言可以不用编译就能被计算机识别执行C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D) C语言出现的最晚、具有其他语言的一切优点参考答案为:C您的答案为:C在一个C语言程序中A) main函数必须出现在所有函数之前B) main函数必须出现在所有函数之后C) main函数可以在任何地方出现D) main函数必须出现在固定位置参考答案为:C您的答案为:C一个C语言程序是由_______组成的。

A) 一个主程序和若干子程序 B) 若干子程序 C) 函数 D) 若干过程参考答案为:C您的答案为:C以下叙述中正确的是()A) C语言的源程序不必通过编译就可以直接运行B) C语言中的每条可执行语句最终都将被转换成二进制的机器指令C) C源程序经编译形成的二进制代码可以直接运行D) C语言中的函数不可以单独进行编译您的答案为:参考答案为:BB下列关于C语言用户标识符的叙述中正确的是A) 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头B) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头C) 用户标识符中不可以出现中划线,但可以出现下划线D) 用户标识符中可以出现下划线和中划线(减号)参考答案为:C您的答案为:C以下说法中正确的是A)C语言程序总是从第一个定义的函数开始执行B)C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分参考答案为:C您的答案为:C默认情况下,一个C程序的执行是从A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束参考答案为:A您的答案为:AC语言编程整个操作的过程是A)编辑、编译、链接、执行B)编译、编辑、链接、执行C)链接、编译、编辑、执行D)编辑、链接、编译、执行参考答案为:A您的答案为:A下列说法不正确的是A)链接操作将生成扩展名为.lnk的文件B)编辑过程将生成扩展名为.cpp或.c的文件C)编译过程将生成扩展名为.obj的文件C)C编程最终要生成扩展名为.exe的文件参考答案为:A您的答案为:AC语言提供了丰富的结构化语句,直接支持____、_____和_______三种基本程序结构。

c语言大一期末考试题库及详解答案

c语言大一期末考试题库及详解答案

c语言大一期末考试题库及详解答案C语言大一期末考试题库及详解答案一、选择题1. 下列哪个选项是C语言的关键字?A. IntegerB. StringC. FloatD. None of the above答案:D2. 在C语言中,定义一个整型变量的正确语法是什么?A. int var;B. var int;C. integer var;D. var integer;答案:A3. 以下哪个表达式的结果不是整数?A. 3 / 2B. 7 % 3C. 10 / 2D. 8 / 2答案:A二、填空题1. 在C语言中,用于定义数组的关键字是________。

答案:Array2. 一个C语言程序的执行从________函数开始。

答案:main3. 以下语句的输出结果是________。

```cint a = 5, b = 10;printf("%d", a + b);```答案:15三、简答题1. 简述C语言中指针的概念及其用途。

答案:指针是C语言中用来存储变量地址的变量。

它允许程序员直接访问内存地址,从而可以动态地操作内存。

指针的用途包括动态内存分配、实现数据结构如链表、数组的遍历等。

2. 解释C语言中的函数重载。

答案:C语言不支持函数重载。

在C语言中,如果两个或多个函数具有相同的名称但参数列表不同,编译器会报错。

这是与支持函数重载的语言(如C++)的主要区别。

四、编程题1. 编写一个C语言程序,实现计算并输出1到100的整数之和。

```c#include <stdio.h>int main() {int sum = 0, i;for(i = 1; i <= 100; i++) {sum += i;}printf("The sum of numbers from 1 to 100 is: %d\n", sum);return 0;}```2. 编写一个C语言函数,实现字符串反转的功能。

安徽大学C语言期末试卷(含答案)

安徽大学C语言期末试卷(含答案)

安徽大学C语言程序设计期末试题一.单项选择题:(每题2分,共20分)1.执行程序:int a;printf("%d\n",(a=3*5,a*4,a+5));后,a的值是______。

A)60B)20C)15D)102.程序段:int x=023;printf("%d\n",--x);的输出是______。

A)19B)18C)23D)223.程序段:static char s[10]={'C','h','i','n','a'};printf("%d\n",strlen(s));的输出是______。

A)6B)5C)11D)104.若fun(int x){printf(“%d\n”,x);},则fun_______。

A)返回值为void类型B)返回值类型无法确定C)返回值为int类型D)没有返回值5.有宏定义:#define MULT1(a,b)a*b#define MULT2(a,b)(a)*(b)且引用宏:y=MULT1(3+2,5+8);z=MULT2(3+2,5+8);则y和z的值是______。

A)y=65,z=65B)y=21,z=65C)y=65,z=21D)y=21,z=216.程序段char s[]="Hello",*p;p=s;执行后,*(p+5)的值是______。

A)'o'B)'\0'C)'o'的地址D)不确定的值7.程序段:char*s=”ABCD”,*p;for(p=s;*p;p++)printf("%s\n",p);的输出是______。

A)ABCDB)AC)DD)ABCDBCD B C ABCCD C B ABD D A A8.若定义:int(*p)[3];则标识符p______。

C语言程序设计期末考试试题含答案

C语言程序设计期末考试试题含答案

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 。

安徽大学c语言试卷

安徽大学c语言试卷

安徽大学20 -20 学年第 学期《C 语言程序设计》期末考试试卷(A 卷120分钟)年级 院系专业 姓名 学号 座位号一. 单项选择题:(每题2分,共40分)下列各题A)、B)、C)、D)四个选项中只有一个是正确的,请将正确选项填在答题卡相应题目的横线上。

答在试卷上不得分。

1.下面程序段执行后,a 的值是______。

int a;printf("%d \n", (a=3*5, a*4, a+5) ); A)60 B)20 C)15 D)102.下列程序段的输出是______。

int x=023;printf("%d \n", --x );A)19 B)18 C)23 D)223.执行下列语句后,a的值是______。

int a=8; a+=a-=a*a;A)-240 B)64 C)112 D)-1124.执行下列语句后,输出的值是______。

int x=6;printf("%d,%d,%d\n",x,x++,--x);A)5,5,5 B)6,5,5 C)7,6,5 D)5,6,55.指出下列程序段所表示的逻辑关系是______。

if(a<b) {if(c==d) x=1; } else x=2;A)若a<b 且c=d ,则x=1;若a>=b 且c!=d ,则x=2。

B)若a<b 且c=d ,则x=1;若a>=b ,则x=2。

C)若a<b 且c=d ,则x=1;若a<b 且c!=d ,则x=2。

D)若a<b 且c=d ,则x=1;若c!=d ,则x=2。

6.下列程序段的执行结果是______。

int i,x;for(i=1,x=1;i<=20;i++){if(x>=10) break;if(x%2==1){x+=5;continue;}x-=3;}printf("%d,%d\n",x,i);A)6,4 B)7,5 C)10,6 D)14,77.下列程序的执行结果是______。

c语言期末考试试题及答案

c语言期末考试试题及答案

c语言期末考试试题及答案一、选择题(每题2分,共20分)1. C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项是C语言的合法整数常量?A. 0x12B. 0123C. 12.34D. 1.2e3答案:A3. 在C语言中,用于将字符串复制到另一个字符串的函数是:A. strcpyB. strcatC. strcmpD. strlen答案:A4. 下列关于C语言函数的描述,错误的是:A. 函数可以返回一个值B. 函数可以没有返回值C. 函数可以有多个返回值D. 函数可以没有参数答案:C5. 在C语言中,用于声明一个指针变量的语法是:A. int *p;B. int *p = 0;C. int p*;D. int p = *0;答案:A6. 下列关于C语言数组的描述,正确的是:A. 数组的大小在声明时确定B. 数组的大小在运行时确定C. 数组的大小可以动态改变D. 数组的大小可以是任意值答案:A7. 在C语言中,用于打开文件的函数是:A. fopenB. fcloseC. freopenD. fgetc答案:A8. 下列关于C语言中文件操作的描述,错误的是:A. 文件指针必须指向有效的文件B. 文件指针可以指向标准输入输出流C. 文件指针可以是任意值D. 文件指针可以用于读写操作答案:C9. 在C语言中,用于输出格式化字符串的函数是:A. printfB. scanfC. sprintfD. fprintf答案:A10. 下列关于C语言中指针的描述,正确的是:A. 指针可以存储变量的地址B. 指针可以存储变量的值C. 指针可以存储函数的地址D. 指针可以存储数组的地址答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用________运算符可以获取变量的地址。

答案:&2. C语言中,使用________运算符可以对指针进行递增操作。

安徽大学C语言期末上机考试试卷及答案

安徽大学C语言期末上机考试试卷及答案

2013上机考试试题一、单项选择题1.下列运算符中优先级最高的是【C 】A.||B.*C.++D.&&2.下列数据中定义正确的是【D 】A. char str[3][]={“abc”,’1’};B. char str[][3]={“abc”,’1’};C. char str[3][]={‘a’,’1’};D. char str[][3]={‘a’,’1’};3.下列符号常量的定义中正确的是【D 】A. #define N 1 3B. define N 3C. #define N-1 3D. #define N 34. 下列标识符中不能作为函数名的是【A 】A. 3_fnB. fn_fnC. fn_0D. fn5. 定义float Num; *ptr=&Num; 下列表达式中错误的是【B 】A. *&ptrB. &*NumC. &*ptrD. *&Num6. strlen(“\\129\129abc\t”)的值是【C 】A. 9B. 12C. 10D. 77.整型变量做实参时,它和对应形参之间的数据传递方式是【D 】A. 由用户指定传递方式B. 双向值传递C. 地址传递D. 单向值传递8. 函数调用不可以出现在【A 】中A. 函数的形参B. 表达式C. 函数的实参D. 执行语句9. 下列程序的输出结果是【B 】Int a[]={1,2,3,4,5,6},*pa;pa=a;*(pa+2)+=2;Printf(“%d%d”,*pa,*(pa+2));A. 06B. 15C. 04D. 1410. 以下函数说明正确的是【A 】A. short max (int X, int Y);B. short max (int X; int Y);C. short max (int X; int Y)D. short max (int X, Y)11. char *str=”1234”;char *p;p=str;printf(“%s”,p+1);输出结果是【B 】A. 1234B. 234C. 134D. 12312. 下列条件表达式中,【C 】可以判断c是否为大写字母。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

安徽大学 C语言程序设计期末试题一. 单项选择题:(每题2分,共20分)1.执行程序: int a; printf("%d \n", (a=3*5, a*4, a+5) );后,a的值是______。

A)60B)20C)15D)102.程序段:int x=023; printf("%d \n", --x );的输出是______。

A)19B)18C)23D)223.程序段:static char s[10]={'C','h','i','n','a'}; printf("%d\n",strlen(s));的输出是______。

A)6 B)5C)11D)104.若fun( int x) { printf(“%d\n”,x);}, 则fun_______。

A)返回值为void 类型B)返回值类型无法确定C)返回值为int 类型D)没有返回值5. 有宏定义:#define MULT1(a,b) a*b#define MULT2(a,b) (a)*(b)且引用宏:y=MULT1(3+2,5+8); z=MULT2(3+2,5+8); 则y和z的值是______。

A)y=65,z=65 B)y=21,z=65 C)y=65,z=21 D)y=21,z=216.程序段char s[]="Hello", *p; p=s;执行后,*(p+5)的值是______。

A)'o'B)'\0'C)'o'的地址D)不确定的值7. 程序段:char *s=”ABCD”, *p; for( p=s; *p ; p++) printf("%s\n", p);的输出是______。

A)ABCDB)A C)DD)ABCDBCD B C ABCCD C B ABD D A A8. 若定义:int (*p)[3]; 则标识符p______。

A)定义不合法。

B)是一个指针数组名,每个元素是一个指向整型变量的指针。

C)是一个指针,它指向一个具有三个元素的一维数组。

D)是一个指向整型变量的指针。

9. 定义: struct sk {int a; float b;} data,*p; 且p=&data; 则正确引用成员a的方式是______。

A) p.data.a B) (*p).a C) p->data.a D) (*p).data.a10. 以二进制只读方式打开一个已有的文本文件file1,正确调用fopen函数的方式是______。

A)FILE *fp;B)FILE *fp;fp=fopen("file1","rb");fp=fopen("file1","r+");C)FILE *fp;D)FILE *fp;fp=fopen("file1","r");fp=fopen("file1","rb+");二. 填空题:(每空1分,共20分)请将正确答案填在答题卡相应题目的横线上。

答在试卷上不得分。

1.C程序一个函数的定义由__________和____________两部分组成。

2.C语言的整型变量可分为基本型、短整型、________和________。

3.C语言在判断一个量是否为“真”时,以____代表“假”,以____代表“真”。

4.C语言中的break 语句只能用于______和______语句。

5.对________和________型数组不赋初值,系统会对所有元素自动赋以0值。

6.C语言中“文件包含”是通过____________命令完成的,而符号常量是通过____________命令定义的。

7.对于数组x[5][5],*(x+2)+3表示__________,*(x[3]+2)表示__________。

8.若定义:struct {int y, m, d;} today, *pdata; 则为today 分配内存 ____ 字节,为pdata 分配内存 ____ 字节。

9.C语言文件按数据的存放形式可分为________文件和_________文件。

10. C语言文件是一个________序列,这类文件称为_________文件。

三. 程序归纳题(每题2分,共10分)阅读下列函数,总结其主要功能填在答题卡相应的横线上。

答在试卷上不得分。

1. int fun1 (char *str){ char *ptr=str; while(*ptr++); return ptr -str -1; } 2. double fun2(double x, double y, double z){ return x>(y>z?y:z)?x:(y>z?y:z); }3. void funs3( int num[], int size ){ int i=0, tmp;while( i<size/2 ) tmp=num[i],num[i]=num[size -i -1],num[size -i -1]=tmp,i++;} 4. void fun4(char *f, char *t){ for(;*f!='\0';f++,t++) *t=*f; *t='\0'; } 5.void fun5(char *ps) { int a1=0, a2=0; while (*ps!= '\0') { if (*ps>='a'&&*ps<='z') a1++; else if (*ps>='0'&&*ps<='9') a2++; p++; }printf("%d,%d \n",a1, a2); }阅读程序,将其运行结果填在答题卡相应题目的横线上。

答在试卷上不得分。

1. #include "stdio.h"void main() {static int a[]={1,2,3,4,5,6},*p;p=a; *(p+3)+=2;printf("%d,%d\n",*p,*(p+3)); }2. #include "stdio.h"void main() { int x=1;{ int x=2;{ int x=3; printf("%2d",x); }printf("%2d",x); }printf("%2d",x); }3. #include <stdio.h>#include <string.h>void sort( char **str, int n){char *tmp; int i,j;for( i=0; i<n-1; i++ )for( j=0; j<n-i-1; j++ )if(strcmp(str[j],str[j+1])>0)tmp=str[j], str[j]=str[j+1], str[j+1]=tmp; }void main() {char **ps,*str[3]={ "BOOK","COMPUTER","CHINA"};int i;ps=str; sort(ps,3);for(i=0; i<3; i++) printf("%d %s ",i+1, str[i]); }4. #include <stdio.h>int leap_year(int year){return year%4==0 && year%100!=0 || year%400==0; }void main(){int month_day[]={31,28,31,30,31,30,31,31,30,31,30,31 }, days,i;struct date {int year;int month;int day;}mdate={2008,5,1};if(leap_year(mdate.year))month_day[1]++;for(i=1,days=mdate.day;i<mdate.month;i++)days+=month_day[i-1];printf("%d-%d is the %dth day in %d",mdate.month,mdate.day,days,mdate.year); }5. #include <stdio.h>void add( int *x, int *y, int n){while(n--) *x++ += *y++; }void main(){int i=5; static int s1[]={2, 1, 0, 3, 2}, s2[5];add(s2, s1, 5);while(i--) printf("%2d", s2[i]); }阅读下列程序,在指定位置上填入适当的内容使程序完整。

请勿改动其它内容。

请将正确答案填在答题卡上。

答在试卷上不得分。

1.函数insert将一个指定的单精度数按递减规律插入数组num中,注:数组num中已有12个按照递减顺序排好序的单精度数。

void insert( float num[13],float new ){ int i=11;/***answer begin***/……/***answer end***/ }2.编写函数mycmp实现库函数strcmp的功能:两个字符串的比较。

int mycmp(char *p1,char *p2){ /***answer begin***/……/***answer end***/ }3.设有三个候选人,每次输入一个得票的候选人的名字,要求最后输出各人得票结果。

#include <string.h>struct person{ char name[20];int count;}leader[3]={“Li”,0,“Zhang”,0,”Wang“,0};main(){ int i,j; char leader_name[20];for(i=1;i<=10;i++){/***answer begin***/……/***answer end***/}for(i=0;i<3;i++)printf("%5s:%d\n",leader[i].name,leader[i].count);}4. 从键盘上输入一个字符串,将其中的小写字母转换成大写字母,然后输出到名为“test”的文本文件中保存。

相关文档
最新文档