湖南大学C语言程序设计试卷

合集下载

C语言程序设计考试试卷(附答案)

C语言程序设计考试试卷(附答案)

C语言程序设计考试试卷计算机程序设计课程56 学时 3.5 学分考试形式:闭卷一、选择题(15小题,每小题2分,共计30分)1.下面不正确的字符串常量是 A 。

A)'abc' B)"12'12" C)"0" D)" "2.以下正确的叙述是 DA)在C程序中,每行中只能写一条语句B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C)在C程序中,无论是整数还是实数,都能被准确无误(精确)地表示D)在C程序中,%是只能用于整数运算的运算符3.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'十'6'一'3';后,c2中的值为 AA)D B)68 C)不确定的值 D)C4.sizeof(float)是 B :A)一个双精度型表达式 B)一个整型表达式C)一种函数调用 D)一个不合法的表达式5.以下说法正确的是 D :A)输入项可以为一实型常量,如scanf("%f",3.5);B)只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d");C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f",&f);D)当输入数据时,必须指明变量的地址,如scanf("%f",&f);6.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A,B,当从第一列开始输入数据时,正确的数据输入方式是 D (注:<CR>表示回车)。

int a1,a2; char c1,c2;scanf("%d%d",&a1,&a2); scanf("%c%c",&c1,&c2);A) 1020AB<CR> B)10 20<CR>AB<CR>C)10 20 AB<CR> D)10 20AB<CR>7.请阅读以下程序:void main(){int a=5,b=0,c=0;if(a=b+c) printf("***\n");e1se printf("$$$\n");以上程序 D :A)有语法错不能通过编译 B)可以通过编译但不能通过连接C)输出*** D)输出$$$8.下面程序段的运行结果是 C 。

c语言程序设计试卷及答案(A)

c语言程序设计试卷及答案(A)

c语言程序设计试卷及答案(A) C语言程序设计试卷及答案(A)试卷一、选择题(共10题,每题2分,总分20分)1. 下列哪个函数可以计算字符串长度?A. scanf()B. gets()C. puts()D. strlen()2. C语言中,以下哪个关键字用于定义常量?A. constB. staticC. externD. volatile3. 在C语言中,以下哪个运算符具有最高的优先级?A. =B. ++C. +D. *4. 结构体是由一组相关的____组成的。

A. 函数B. 数据C. 指针D. 宏5. 在C语言中,以下哪个循环结构会先判断条件?A. whileB. do-whileC. forD. if6. 下列哪种数据类型不能存储整数?A. intB. doubleC. charD. long7. 在C语言中,以下哪个关键字用于终止循环?A. continueB. gotoC. breakD. return8. C语言中,以下哪种数据结构是先进先出(FIFO)的?A. 栈B. 队列C. 链表D. 数组9. 在C语言中,以下哪个关键字用于定义函数?A. functionB. procedureC. methodD. void10. 下列哪个函数可以将浮点数四舍五入为整数?A. ceil()B. floor()C. round()D. trunc()二、填空题(共5题,每题4分,总分20分)1. 下划线开头的标识符在C语言中一般用于定义_____。

2. 以下哪个函数可以将字符串转换为整数?______()3. C语言中,允许使用____字符来表示转义字符。

4. C语言中,____的作用是用来定义宏。

5. 使用____可以将整数转换为字符串。

三、代码阅读与填空(共4题,每题10分,总分40分)请阅读以下代码,并回答相应的问题。

#include <stdio.h>int main() {int i, j;for (i = 1; i <= 5; i++) {for (j = 1; j <= 5; j++) {if (i == j) {printf("* ");} else {printf("- ");}}printf("\n");}return 0;}1. 以上代码的输出结果是什么?__- - - * -__- - * - -__- * - - -__* - - - -__- - - - -2. 请解释代码中的嵌套循环的作用是什么?3. 如果要输出一个倒立的等腰三角形如下所示: __* * * * *__* * * *__* * *__* *__*需要对代码进行怎样的修改?4. 请写出一个函数,接受两个整数作为参数,返回它们的最大公约数。

大学C语言程序设计试题含答案

大学C语言程序设计试题含答案

大学C语言程序设计试题含答案一、简答题1. 请简要解释什么是C语言程序设计。

C语言程序设计是一种计算机编程语言,由贝尔实验室的Dennis Ritchie在20世纪70年代早期开发。

它强调的是效率和可移植性,被广泛应用于操作系统、嵌入式系统和其他需要高效执行的应用程序开发。

2. C语言的基本数据类型有哪些?请列举并简要说明其特点。

C语言的基本数据类型包括:- int:用于表示整数,通常占用4个字节内存,可以表示范围较大的整数;- char:用于表示字符,占用1个字节内存,常用于存储ASCII码;- float:用于表示单精度浮点数,占用4个字节内存,可用于表示小数;- double:用于表示双精度浮点数,占用8个字节内存,可用于表示更大范围和更高精度的小数;- void:表示无类型,常用于函数返回类型。

3. 请解释C语言中的变量和常量的概念,并简要说明它们的区别。

变量是用于存储和表示数据的一种方式,可以根据需要改变其值。

在C语言中,变量声明需要指定其类型,并可以为变量命名,并通过赋值来存储数据。

常量是固定不变的值,不能改变其值。

在C语言中,常量可以是字面值常量(直接指定数值或字符)、符号常量(使用预处理器#define 指令定义的常量)或常量表达式(由常量组成的表达式)。

常量在程序执行过程中保持不变。

二、编程题1. 编写一个程序,输入一个整数,判断该数字是奇数还是偶数,并输出相应的提示信息。

```c#include <stdio.h>int main() {int num;printf("请输入一个整数: ");scanf("%d", &num);if (num % 2 == 0) {printf("%d是偶数。

\n", num);} else {printf("%d是奇数。

\n", num);}return 0;}```2. 编写一个程序,计算并输出1到100之间所有奇数的和。

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

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

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语言程序设计试题及参考答案

C语言程序设计试题及参考答案C语言程序设计试题及答案(一)1. 若有定义"float x=1.5;int a=1,b=3,c=2;",则正确的switch语句是() (2分)A.switch(x){case 1.0: printf("__ ");case 2.0 printf("____ ");}B.switch((int)x){case 1.0: printf("__ ");case 2.0 printf("____ ");}C.switch(a+b){case 1: printf("__ ");case 2+1: printf("____ ");}D.switch(a+b){case 1: printf("__ ")case c: printf("____ ");}标准答案:C2. 若有宏定义如下:#define X 5#define Y X+1#define Z Y__X/2则执行以下printf语句后,输出的结果是( )int a; a=Y;printf("%d ",Z);printf("%d",--a); (2分)A.7,6B.12,6C.12,5D.7,5标准答案:D3. 下面的.符号常量定义中,正确的是 ( ) (2分)A.#define PI 3.14;B.#include PI 3.14;C.#define PI=3.14D.#define PI 3.14标准答案:D4. 以下程序的输出结果是( )int a, b;void fun(){ a=100; b=200; }main(){ int a=5, b=7;fun();printf("%d%d ", a,b);} (2分)A.100200B.57C.00D.75标准答案:D5. 若有以下调用语句,则不正确的fun函数的首部是( ) main(){ …int a[50],n;…fun(n, a[9]);…} (2分)A.void fun(int m, int x[])B.void fun(int s, int h[41])C.void fun(int p, int __s)D.void fun(int n, int a)标准答案:D6. 以下程序的输出结果是( )fun(int x, int y, int z){ z=x__x+y__y; }main(){ int a=31;fun(5,2,a);printf("%d",a);} (2分)A.0B.29C.31D.无定值标准答案:C7. 以下只有在使用时才为该类型变量分配内存的存储类说明是( ) (2分)A.auto和staticB.auto和registerC.register和staticD.extern和register标准答案:B8. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( ) (2分)A.地址传递B.单向值传递C.由实参传给形参,再由形参传回实参D.传递方式由用户指定标准答案:B9. 以下函数值的类型是( )fun ( float x ){ float y;y= 3__x-4;return y;} (2分)A.intB.不确定C.voidD.float标准答案:A10. C语言规定函数的返回值的类型是由( ) (2分)A.return语句中表达式类型决定B.调用该函数时的主调函数类型决定C.调用该函数时系统临时决定D.在定义该函数时所指定的函数类型决定标准答案:D11. 若有说明:int i,j=7, __p=i; 则与i=j;等价的语句是( ) (2分)A.i= __P;B.__p=__j;C.i=j;D.i=__ __p;标准答案:B12. 以下程序执行后a的值是( )main(){ int a,k=4,m=6,__p1=k,__p2=m;a=p1==m;printf("%d ",a);} (2分)A.4B.1C.0D.a无定值标准答案:D13. 若有说明:long __p,a;则不能通过scanf语句正确给输入项读入数据的程序段是( ) (2分)A.__p=a;scanf("%ld",p);B.p=(long __)malloc(8);scanf("%ld",p);C.scanf("%ld",p=a);D.scanf("%ld",a);标准答案:A14. 以下程序的输出结果是( )#includeint a[3][3]={1,2,3,4,5,6,7,8,9,},__p;main(){p=(int __)malloc(sizeof(int));f(p,a);printf("%d ",__p);}f(int __s,int p[][3]){__s=p[1][1];} (2分)A.1B.4C.7D.5标准答案:D15. 设已有定义: char __st="how are you"; 下列程序段中不正确的是( ) (2分)A.char a[12], __p; strcpy(p=a+1,st[4]);B.char a[12]; strcpy(++a, st);C.char a[12]; strcpy(a, st);D.char a[12], __p; strcpy(p=a[1],st+2);标准答案:B18. 以下程序的输出结果是_____ B___。

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

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

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语言程序设计期末考试试卷

c语言程序设计期末考试试卷C语言程序设计期末考试试卷一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项表示一个字符常量?- A. 'A'- B. "A"- C. \A- D. A2. 以下哪个是C语言中的合法标识符?- A. 2variable- B. variable2- C. variable!3. C语言中,以下哪个语句用于定义一个整型数组?- A. int array[10] = {0};- B. int [10] array = {0};- C. int array = [10] = {0};- D. int array[10];4. 以下哪个是C语言中定义函数的关键字?- A. function- B. method- C. def- D. int5. C语言中,以下哪个是正确的函数声明?- A. int add(int a, int b)- B. int add(int a, int b) {}- C. int add(int, int);- D. void add(int a, int b);6. 在C语言中,以下哪个语句用于实现循环?- A. do-while- B. for- C. switch-case- D. if-else7. 在C语言中,以下哪个语句用于实现条件判断? - A. if-else- B. switch-case- C. while- D. for8. 在C语言中,以下哪个语句用于实现跳转?- A. return- B. break- C. continue- D. goto9. 在C语言中,以下哪个是正确的字符串字面量? - A. "Hello World"- B. 'Hello World'- C. "hello world"- D. {"Hello World"}10. 在C语言中,以下哪个是正确的结构体定义?- A. struct person { int age; char name[20]; };- B. struct { int age; char name[20]; } person;- C. struct person { int age; char name; };- D. struct person int age; char name[20];二、填空题(每空1分,共10分)1. 在C语言中,一个整型变量的默认值是______。

c语言及程序设计试题及答案

c语言及程序设计试题及答案

c语言及程序设计试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项不是C语言中的运算符?A. %B. &&C. ::D. &&答案:C3. 在C语言中,哪个函数用于将字符串转换为浮点数?A. atoiB. atofC. itoaD. sprintf答案:B4. 下列哪个选项是合法的C语言变量名?A. 2variableB. variable2C. variable_2D. variable$2答案:C5. 在C语言中,以下哪个选项是正确的文件打开模式?A. "r"B. "w"C. "a"D. "r+"答案:D6. C语言中,以下哪个关键字用于定义一个函数?A. functionB. defC. voidD. int答案:C7. 在C语言中,以下哪个选项表示“不等于”?A. ==B. !=C. =D. ==答案:B8. C语言中,哪个函数用于计算字符串的长度?A. strlenB. strcpyC. strcatD. strcmp答案:A9. 在C语言中,以下哪个选项是正确的注释方式?A. // This is a single line commentB. /* This is a single line comment */C. //* This is a single line comment */D. /* This is a multi-line comment */答案:A10. C语言中,以下哪个关键字用于定义一个指针?A. ptrB. refC. *D. ^答案:C二、填空题(每题3分,共15分)1. 在C语言中,定义一个整型变量的正确语法是:int ________;答案:变量名2. 要将一个字符变量赋值为'A',正确的赋值语句是:char ch =________;答案:'A'3. 在C语言中,使用 ________ 函数可以输出格式化的字符串。

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

第 1 页(共 6 页)
三、写出程序运行结果(每题 5 分,共20分)
1.main()
{ int a=15,b=21,m=0;
switch(a%3)
{ case 0:m++;break;
case 1:m++;
switch(b%2)
{ default:m++;
case 0:m++;break;
}
}
printf(“%d\n”,m);
}
程序运行后的输出结果是:
2.float fun(int x, int y)
{return (x+y);}
main()
{ int a=2,b=5,c=8;
printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}
程序运行后的输出结果是:
3.void fun(char *c,int d)
{ *c=*c+1;d=d+1;
printf("%c,%c,",*c,d);
}
main()
{ char a='A',b='a';
fun(&b,a); printf("%c,%c\n",a,b);
}
程序运行后的输出结果是:
4.struct stu
{ char num[10]; float score[3]; };
main()
{ struct stu s[3]={{"20021",90,95,85},
{"20022",95,80,75},
{"20023",100,95,90}},*p=s;
int i; float sum=0;
for(i=0;i<3;i++)
sum=sum+p->score[i];
printf("%6.2f\n",sum);
}
程序运行后的输出结果是:
第 2 页(共 6 页)
四、程序改错(每题5分,共20分)
1.以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:main()
{ int n,k;
float score ,sum,ave;
sum=0.0;
for(n=1;n<=10;n++)
{ for(k=1;k<=4;k++)
{ scanf("%f",&score); sum+=score;}
ave=sum/4.0;
printf("NO%d:%f\n",n,ave);
}
}
上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。

这条语句是哪条?并将其移到正确的位置。

2.以下函数的功能是计算s=1+1/2+1/3+……+1/n,程序运行后结果不正确,错误的语句是哪条?并改之。

main()
{float s=0.0;
int i;
for(i=1;i<=3;i++)
s=s+1/i;
printf("%f",s);
}
3.以下函数的功能是:输出有10个元素的整型数组a的元素值。

程序运行后结果不正确,只增加一条语句使其完成要求功能。

main( )
{ int a[10], *p=a , i;
for ( i=0; i<10; i++) scanf("%d",p++);
printf("\n");
for ( i=0; i<10; i++, p++) printf("%d ",*p);
}
4.以下函数的功能是:打印1到5的阶乘值。

程序运行后结果不正确,只修改一条语句使其完成要求功能。

int fac(n)
int n;
{ int f =1;
f = f n ;
return( f );
}
main( )
{ int i;
for (i=1; i<=5; i++)
printf(“%d!=%d\n”, i, fac(i));
}
第 3页(共6页)
五、程序填空(在【】中填空,每题5 分,共20分)
1.fun函数的功能是:首先对a所指的N行N列的矩阵,找出各行中的最大的数,再求这N个最大值中的最小的那个数作为函数值返回。

请填空。

#include<stdio.h>
#define N 4
int fun(int(*a)[N])
{ int row,col,max,min;
for(row=0;row<N;row++)
{ for(max=a[row][0],col=1;col<N;col++)
if(【】) max=a[row][col];
if( row==0) min=max;
else if(【】) min=max;
}
return min;
}
2.函数sstrcmp()的功能是对两个字符串进行比较。

当s所指字符串和t所指字符串相等时,
返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp())。

请填空。

#include<stdio.h>
int sstrcmp(char *s,char *t)
{ while(*s&&*t&&(*s-*t)【】)
{ s++;t++;}
return 【】
}
3.下面的程序是用指针来交换两个数据,请将缺省语句填上。

void exchange( int *p ,int *q)
{ int t;
t=*p; *p=*q; *q=t;
}
main()
{ int a,b,*x,*y;
a=10;b=20;
x=&a;【】
【】
printf(“%d %d\n”,*x, *y);
}
4.下面的程序是将字符串a按反向存入字符串b中并输出。

(如:串a为"12345",则串b为"54321")
main()
{ char *a={"abcdefg"},b[80],*p=b;
int n,m,k;
k=strlen(a);
n=k-1;
m=0;
while (n>=0)
{ *(p+m)=【】
n--;
第 4 页(共 6 页)【】
}
*(p+k)=*(a+k);
printf("%s \n",a);
printf("%s \n",b);
}
六、编写函数完善下面程序(每题10分,共20分)
1.编写在字符串中寻找关键字符的子函数
#include <stdio.h>
char *search(char *tagstr, char *c)
{
}
main()
{ char *string="I am a student",c;
printf("Please enter the character:");
scanf("%c",&c); /*输入关键字符*/
if(search(string,&c))
printf("Found!!!",search(string,&c));
else
printf("Not Found!!!\n");
}
2.用指向函数的指针作形参,设计一个函数process, 每次实现不同的功能,当用不同的函数名作实参调用process时,process再去调用相应的函数。

#include <stdio.h>
main ( )
{ int max( ), min( ), add( ),process();
int a, b;
printf("enter a and b:");
scanf("%d, %d", &a, &b);
printf("max=");
process(a, b, max);
printf("min=");
process(a,b,min);
printf("sum=");
process(a, b, add);
}
第 5 页(共 6页)
max(x, y)
int x, y;
{ int z;
if (x>y) z=x;
else z=y;
return(z);
}
min(x, y)
int x, y;
{ int z;
if (x<y)
z=x;
else
z=y;
return(z);
}
add(x, y)
int x, y;
{ int z;
z=x+y;
return(z);
}
process( )
{
}
第 6 页(共 6 页)。

相关文档
最新文档