中国石油大学《C语言程序设计》期末复习题及答案
(完整版)《C语言程序设计》复习参考答案

第一章【随堂练习1-2】1 .下面哪些标识符属于合法的用户自定义标识符:Main、void、_num、my$、a*、N4、3m、a-2答:合法的用户自定义标识符是:Main、_num、N42. 结合【例1.2】指出程序代码中所用到的标识符哪些是关键字,哪些是预定义标识符,哪些是用户自定义标识符。
答:关键字:void、int预定义标识符:in elude、main、prin tf、sca nf用户自定义标识符:a、b、c3. 分析【例1.2】中函数的结构,包括函数首部(函数返回值类型、函数名、形式参数) 、函数体语句(说明语句、可执行语句) 。
答:函数首部:void main(),其中函数返回值类型为void、函数名为main、形式参数无;函数体语句:{}内的语句为函数体,其中:说明语句为int a,b,c;,其余为可执行语句。
一. 单元练习一. 选择题1构成C语言程序的基本单位是()。
A .框架B .预处理C.函数 D .语句2 •在程序开发过程中,把文本文件格式源程序转化为二进制格式的目标程序的过程称之为()°A. 编辑B.编译C.连接D.运行3 •关于主函数,下列说法不正确的是()°A. —个完整的C语言应用程序有唯一的主函数B. 主函数的名称只能是m ai nC. 主函数可以被其他自定义函数调用D. C语言程序的运行从主函数开始,以主函数为核心展开4 .关于标识符,下列说法不正确的是()°A. 库函数名称为预定义标识符,不建议用作用户自定义标识符B. 关键字不能作为用户自定义标识符C. 用户自定义标识符中不区分大小写字母D. 标识符中可以出现下划线,且可以出现在标识符的任意位置5 .以下可用作用户自定义标识符的一组是()°A. void、return、ifB. printf、in elude、fabsC. Max、_abc、MainD. 2abc、pay$、sum-10二. 填空题1.______________________________________________________________ C语言程序一般由若干个函数构成,程序中应至少包含一个 _________________________________ ,其名称只能为°2.____________________________________ C语言程序中每条语句必须以结束。
C语言程序设计期末考试试题及答案

C语言程序设计试题(2008 /2009 学年第二学期)一.选择题(满分30分,每题2分)1.若a、b、c都定义为int类型且初值为0,则以下不正确的赋值语句是 D 。
A. a=b=c+8;B. a+=y+3;C. c++;D. a+b+c2. 已知int j,i=1;执行语句“j=i++;”后,变量i的值是 B 。
A. 1B. 2C. –1D. -23.执行下面程序:#include "stdio.h"void main(){int a=1,b=2,c=3;c=(a+=a+2),(a=b,b+3);printf(“%d,%d,%d”,a,b,c);}则输出结果是: A 。
A. 2,2,4B. 4,2,3C. 5,5,3D. 4,2,54.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为 D 。
A. a< >0B. !aC. a=0D. a5. for (j=0;j<11;j++);循环结束后,j的值是 B 。
A. 12B. 11C. 10D. 96. C语言中函数返回值的类型由 D 决定的。
A. return语句中的表达式类型B. 调用该函数的主调函数的类型C. 调用函数时临时决定D. 定义函数时所指定的函数类型7. 下列说法中正确的是 B 。
A 在调用用户自定义函数时,必须对其进行声明。
B 函数可以返回一个值,也可以什么值也不返回。
C 说明函数时,必须明确参数的类型和返回值。
D 在程序设计中空函数没有什么作用。
8. 若int i=10;执行下列程序后,变量i的正确结果是 D 。
switch ( i ){case 0: i+=1;case 10: i+=1;case 11: i+=1;default: i+=1;}A. 10B. 11C. 12D. 139. 下列语句中不正确的字符串赋值或初始化的是 C 。
A. char str[10]={"strings"}; B.char str[8]={'s','t','r','i','n ','g','s','\0'};C. char str[10]; str= "strings";D. char str[]= "strings";10. 有如下程序:#include <stdio.h>void main(){int a=1,b=0,c=0;if (a<b)if (b<0) c=0;else c++;printf (“%d\n”,c);}该程序的运行结果是 D 。
中国石油大学华东2013-2014第一学期c语言期末考试答案

《计算机程序设计C(2-1)》期末考试试卷专业班级姓名学号开课系室计算机应用技术系考试日期 2014年 1月10日一、程序阅读题(每空2分,共20分)1.若想通过以下输入语句给a赋值1,给b赋值2,则输入数据的形式应该是【1】。
scanf("%d,%d",&a,&b);2.如果a和b的值分别为20和10,下列语句printf("%d+%d=%d",a,b,a+b);输出到屏幕上的结果是【2】。
3.下面程序的输出结果为【3】。
#include <stdio.h>int main(){int x = 10,y = 3;printf("%d\n",x/y);return 0;}4.设i,j,k均为int型变量,则执行完下面的for循环后,k的值为【4】。
for(i = 0,j = 10; i <= j; i ++,j --)k =i + j;5. 水仙花数是指一个三位数的各位数字的立方和是这个数本身,请阅读下面程序并完成填空。
#include <stdio.h>int fun(int n){int i,j,k,m;m = n;【5】;while(m){【6】;m = m / 10;k = k + j * j * j;}if(k == n)【7】;elsereturn 0;}int main(){int i;for(i = 100; i < 1000; i ++){1if( 【8】== 1){printf("%d is ok!\n" ,i);}}return 0;}6. 程序功能是:从键盘输入一行字符,将其中的所有数字字符转换为按先后顺序排列的一个整数。
例如,输入的一行字符为“a2b0D04”,输入结果为整数2004,请补充完整程序。
#include <stdio.h>int main(){int n = 0;char ch;ch = getchar();while(ch != '\n'){if( 【9】){n = n * 10 + ch - '0';}ch = getchar();}printf("value = %d\n",n);return 0;}7.有以下程序#include <stdio.h>int sub(int n){return (n / 10 + n % 10);}int main(){int x,y;scanf("%d",&x);y = sub(sub(sub(x)));printf("%d\n",y);return 0;}若运行时输入:1234<回车>,程序的输出结果是【10】。
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语言期末考试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言中变量的描述,错误的是()。
A. 变量必须先定义后使用B. 变量的类型必须明确C. 变量名可以是任意字符D. 变量的类型决定了变量的存储空间答案:C2. 在C语言中,下列哪个关键字用于定义函数?()A. intB. voidC. returnD. main答案:B3. 下列哪个选项是正确的C语言注释方式?()A. // 这是注释B. /* 这是注释 */C. //* 这是注释D. /* 这是注释 */答案:B4. C语言中,下列哪个运算符用于比较两个值是否相等?()A. ==B. !=C. >D. <答案:A5. 在C语言中,下列哪个选项是正确的字符串定义方式?()A. char str[] = "Hello";B. char str = "Hello";C. char str[] = {"Hello"};D. char str = {"Hello"};答案:A6. 下列哪个选项是C语言中的合法整型常量?()A. 123B. 0x1AC. 0123D. All of the above答案:D7. C语言中,下列哪个选项用于定义一个指向整型的指针?()A. int *p;B. int p;C. *int p;D. int *p = 0;答案:A8. 下列哪个选项是正确的C语言数组定义方式?()A. int arr[5] = {1, 2, 3, 4, 5};B. int arr[] = {1, 2, 3, 4, 5};C. int arr[5] = {1, 2, 3};D. All of the above答案:D9. 在C语言中,下列哪个选项是正确的文件包含指令?()A. #include "stdio.h"B. #include <stdio.h>C. #include "stdio.h"D. #include <stdio.h>答案:D10. 下列哪个选项是C语言中正确的条件语句?()A. if (x > 0)B. if x > 0C. if (x > 0) {D. if (x > 0) then答案:C二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量并初始化为10的语句是:________。
C程序设计期末考试习题(含答案)

#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语言程序设计》期末复习题一、选择题1.能将高级语言编写的源程序转换成目标程序的是()A.程序 B. 解释程序 C. 编译程序 D.编辑程序2.设a为整型变量,则不能正确表达数学关系10<a<15的C语言表达式是()。
A. 10<a<15B. a==11||a==12||a==13||a==14C. a>10&&a<15D.!(a<=10)&&!(a>=15)3.当调用函数时,实参是一个数组名,则向函数传送的是( )。
A. 数组的长度B. 数组的首地址C. 数组每一个元素的地址D. 数组每个元素中的值4.执行下面的程序段后,k的值是()int k=1,n=325;do { k*=n%10;n/=10;}while(n);A. 3B. 30C. 523D. 3255.若有以下数组说明,则i=6;a[a[i]]元素数值是()。
int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};A.3B.8C.6D.56.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是()A. for(i=1,p=1;i<=5;i++) p*=i;B. for(i=1;i<=5;i++){ p=1; p*=i;}C. i=1;p=1;while(i<=5){p*=i; i++;}D. i=1;p=1;do{p*=i; i++; }while(i<=5);7.若有:int a[][3]={{1,2,3},{4,5},{6,7},{8}}; 则数组a的第一维的大小为: ( ) A. 12 B. 3 C. 4 D.无确定值8.设有如下程序段,则执行p=s;语句后,以下叙述正确的是( )。
char s[20]= “Bejing”,*p;p=s;A.可以用*p表示s[0]B.s数组中元素的个数和p所指字符串长度相等C.s和p都是指针变量D.数组s中的容和指针变量p中的容相等9.以下正确的函数定义是( )。
c语言程序期末考试试题及答案

c语言程序期末考试试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义函数?A. structB. staticC. voidD. function答案:C2. 下列哪个选项不是C语言中的基本数据类型?A. intB. floatC. charD. string答案:D3. 在C语言中,以下哪个运算符用于计算两个数的和?A. +B. -C. *D. /答案:A4. 下列哪个选项是正确的C语言注释方式?A. // 这是注释B. /* 这是注释 */C. //* 这是注释D. /* 这是注释 */答案:B5. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A6. 在C语言中,以下哪个关键字用于定义一个指针?A. intB. charC. floatD. *答案:D7. 在C语言中,以下哪个选项是正确的数组声明方式?A. int arr[5] = {1, 2, 3};B. int arr[] = {1, 2, 3};C. int arr[5] = {1, 2};D. int arr = {1, 2, 3};答案:A8. 在C语言中,以下哪个选项是正确的条件语句?A. if (condition)B. if (condition) { }C. if (condition) { } else { }D. All of the above答案:D9. 在C语言中,以下哪个选项是正确的循环语句?A. for (int i = 0; i < 10; i++)B. while (condition)C. do { } while (condition);D. All of the above答案:D10. 在C语言中,以下哪个函数用于计算两个数的和?A. printf()B. scanf()C. sum()D. None of the above答案:D二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量的正确方式是:`int ____;`答案:变量名2. 要输出一个字符串,应该使用函数:`____`答案:printf3. 要读取一个字符,应该使用函数:`____`答案:scanf4. 在C语言中,数组的索引从____开始。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
20. 应用缓冲文件系统对文件进行读写操作,关闭文件的函数名为( )。
21.在C语言中,if语句后的一对原括号中,用以决定分支的流程的表达式( )。
A.只能用逻辑表达式B.只能用关系表达式
C.只能用逻辑表达式或关系表达式
D.可用任意表达式
C.i=1;p=1;while(i<=5){p*=i; i++;}
D.i=1;p=1;do{p*=i; i++; }while(i<=5);
7.若有:int a[][3]={{1,2,3},{4,5},{6,7},{8}};
A. 12 B. 3 C. 4 D.无确定值
8.设有如下程序段 ,则执行p=s;语句后,以下叙述正确的是( ) char s[20]=“Bejing”,*p;
{int n=0;
while ( (*x==*y)&&*x!='\0') {x++;y++;n++;}
return n;
}
A.将y所指字符串赋给x所指存储空间
B.查找x和y所指字符串中是否有'\0'
C.统计x和y所指字符串中最前面连续相同的字符个数
D.统计x和y所指字符串中相同的字符个数
19.语言中,定义结构体的保留字是( )。
{
int j,k, x[4][4],y[4][4];
for(j=0;j<4;j++)
for(k=0;k<4;k++)
x[j][k]=j+k;
for(j=0;j<4;j++)
for(k=0;k<4;k++)
y[k][j]=x[j][k];
for(j=0;j<4;j++)
{for(k=0;k<4;k++)
p=s;
A.可以用*p表示s[0]
B.s数组中元素的个数和p所指字符串长度相等
C.s和p都是指针变量
D.数组s中的内容和指针变量p中的内容相等
9.以下正确的函数定义是
A.double sum(int x, int y)
int a=10;
printf("%d",++a);
B. 11,<空格>12<回车>
{int s;
if(n==1||n==0) s=5;
else s=n+fun(n-1);
return s;
}
void main()
{
printf("%ld\n", fun(3));
}
7.以下程序的输出结果是: ( )
printf("%d ",y[j][k]);
printf("\n");
}
}
4.以下程序的输出结果是: ( )
#include <stdio.h&j;
for(i=j=1;j<10;j++,i++)
{
if(j==5)
break;
if(i%2)
continue;
printf("i=%d,j=%d\n",i,j);
22.假设所有变量均为整型,表达式
:a=2,b=5,a>b?a++:b++,a+b
的值是(
)。
A.7
B.8
C.9
D.2
23.若有如下代码,则
a的值为(
)。
int a=1,b=2,c=3;
if(a>b)a=b;
if(a>c)a=c;
k1=1;k2=2;k3=3;x=15;
if(!k1) x--;
else if(k2) x=4;
C
、选择题
1.能将高级语言编写的源程序转换成目标程序的是
A.链接程序
2.设a为整型变量,
A.10<a<15
C. a>10&&a<15
3.当调用函数时,实参是
A.数组的长度
C.数组每一个元素的地址
4.执行下面的程序段后,k的值是()
int k=1,n=325;
do{k*=n%10;n/=10;}while(n);
{int x=0,y=1,a=0,b=0;
switch(x)
{
case 0: switch(y)
{case 0: a++; case 1: b++;
}
case 1: switch(y)
{
case 0: a=a+5;
case 1: b=b+5;
}
}
printf(“a=%d,b=%d\n”,a,b);
}
17.以下不是无限循环的语句为( )。
A. for(y=0,x=1;x>++y;x=i++) i=x;
B.for(;;x++=i);
C.while(1){x++;}
D. for(i=10;;i--) sum+=i;
18.有以下函数,函数的功能是( )。
int fun(char *x,char *y)
else x=3;
25.以下for循环的执行次数是for(x=0,y=0;(y=123)&&(x<4);x++);
30.若执行fopen函数时发生错误,则函数的返回值是(
A.地址值
B.0
C.1
D.EOF
二、读程序,写出程序的运行结果
1.以下程序的输出结果是()。
#include <stdio.h>
void main()
}
}
5.若有以下程序段,则输出结果是( )。#include <stdio.h>
void main()
{
char s2[]="\"c:\\abc.dat\"";
printf(“%s n”,s2);
}
6.以下程序的输出结果是: ( )#include <stdio.h> int fun( int n)
D. 11,<回车> 12<回车>
15.下列定义数组的语句中,正确的是(
A. int x[0..10];
C.#define N 10
int x[N];
16.若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是( )。A. int p=&x;B.int *p=x;C. *p=*x; D. int *p=&x;
2.以下程序的输出结果是( )
#include <stdio.h>
void main()
{int x=-5,y=2,z=1;
if(x<y)
if(y<0) z=0;
else z=z+1; printf(“%d\n”,z);
}
3.以下程序的输出结果是: ( )
#include"stdio.h"
void main( )
A. 3B. 30 C. 523
5.若有以下数组说明,则i=6;a[a[i]]
int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};
A.3 B.8 C.6 D.5
6.若变量已正确定义,要求程序段完成求
A.for(i=1,p=1;i<=5;i++) p*=i;
B.for(i=1;i<=5;i++){ p=1; p*=i;}