C程序04级期末试卷
- 格式:doc
- 大小:73.00 KB
- 文档页数:10
C语言程序设计期末考试试题含答案第一部分:选择题(每题5分,共40分)1. 下列选项中,不是C语言基本数据类型的是:A. intB. floatC. doubleD. string答案:D2. 在C语言中,for循环和while循环的区别是:A. for循环适用于已知循环次数,while循环适用于未知循环次数B. for循环必须有循环条件,while循环可以没有循环条件C. for循环只能用于数字计算,while循环可以用于任意类型的循环D. for循环和while循环没有区别答案:A3. 下列哪个选项是合法的变量名:A. 123varB. _varD. %var答案:B4. 在C语言中,使用printf函数输出一个整数变量的值,应该使用下列哪个占位符:A. %fB. %cC. %dD. %s答案:C5. 下列代码中,输出的结果是什么:```cint a = 5;printf("%d\n", a++);printf("%d", a);```A. 6 5B. 6 6C. 5 6答案:A6. 下列哪个选项中的函数可以用来比较两个字符串是否相等:A. strcmpB. strcatC. strlenD. strcpy答案:A7. 当我们在编写C语言程序时,通常会将一些常用的函数或者代码片段写成一个个独立的文件,这些文件通常以什么扩展名来保存:A. .cB. .hC. .txtD. .exe答案:B8. 下列代码中,缺少的语句是什么:```cint a = 10;int b = 20;int c = a + b;```A. return c;B. printf("%d", c);C. break;D. continue答案:B第二部分:编程题(每题30分,共60分)题目1:编写一个C程序,实现求取一个整数数组中元素的平均值。
要求通过函数实现,函数原型为:float average(int arr[], int length),其中arr为整数数组的首地址,length为数组的长度。
师范学院教育技术学专业2003 级姓名学号2003—2004学年度第二学期使用教材《C程序设计》修读性质必修期末考试分数占总分数的百分比60% 考试方法闭卷笔试考试时间04.6.30 讲授总学时64 学分 4 任课教师于茂春职称助教命题人教研室主任系主任密封线题号一二三四五六七八九十总分核分人题分分分分分分分得分得分一、填空题(每空1分,共10分)1.结构化程序由、、三种基本结构组成。
2.一个C程序总是从函数开始执行。
3.十进制数27,转化为八进制数为转化为十六进制数为。
4.逐个字符输入输出,用格式符,将整个字符串一次输入或输出,用格式符。
5.为表示关系x≥y≥z,应使用的C语言表达式是。
6.从存储类别来讲,函数中的形参和在函数中定义的变量都属于变量。
得分二、单项选择题。
(每题1分,共10分)1.以下叙述中正确的是()A) 构成C程序的基本单位是函数。
B)可以在一个函数中定义另一个函数。
C)main函数必须放在其它函数之前。
D)所有被调用的函数一定要在调用之前进行定义。
2.以下选项中合法的用户标识符是()A)int B) _a12 C) 12w D) stu#83.已定义c为字符型变量,则下列语句中正确的是( )A)c='97'; B)c="97"; C)c=97; D)c="a";4.已知i, j, k 为int 型变量,若从键盘输入20;19;10<CR> (<CR>代表enter),使i的值为20,j的值为19,k的值为10,以下选项中正确的输入语句为()A) scanf("%d;%d;%d",&i,&j,&k); B)scanf("%2d%2d%2d",&i,&j,&k);C) scanf(""%d ;%d ;%d",i, j, k);D) scanf("i=%d,j=%d,k=%d",&i,&j,&k);5.以下程序,执行后的输出结果是()main( ){ int k=4,i=3,m;m=(k+=i*=k); printf(“%d,%d\n”,m,i);}A) 20,16 B) 20,15 C) 28,12 D)16,126.以下函数的类型是()fff ( float x ){ printf(“%d\n”,x*x);}A) float 类型B) void 类型C) int 类型D)无法确定7.以下程序中NUM的值是()A) 5 B)6 C)8 D)9#define N 2#define M N+1#define NUM (M+1)*M/2main( ){ int i;for(i=1;i<=NUM;i++); printf(“%d”,i); }8.以下程序段执行后s的值为()for(n=10;n<20;n++){if(n%4==0) continue; s=s+1;}A) 3 B)5 C)8 D) 99.以下程序的输出结果是()main( ) {int x=20,y=22,t=30;if(x>=y) t=x; x=y; y=t;师范学院教育技术学专业2003 级姓名学号2003—2004学年度第二学期使用教材《C程序设计》修读性质必修期末考试分数占总分数的百分比60% 考试方法闭卷笔试考试时间04.6.30 讲授总学时64 学分 4 任课教师于茂春职称助教命题人教研室主任系主任密封线printf(“%d,%d\n”,x,y);}A) 20,22 B) 22,20 C) 20,30 D) 22,3010.设有如下定义struct aa{ char name[10];int age;char sex;}std[3],*p=std;下面各输入语句中错误的是( )A) scanf("%d",&(*p).age); B) scanf("%s",&);C) scanf("%c",&std[0].sex) D) scanf("%c",&(p->sex));得分三、写出程序或程序段的执行结果,将答案直接写在横线上。
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程序设计(第四版)期末考试题本卷共有4道大题:一、单项选择题(20道小题,共20分)1、以下对C语言函数的有关描述中,正确的是()(1分)A、在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B、C函数既可以嵌套定义又可以递归调用C、函数必须有返回值,否则不能使用函数D、C程序中有关调用关系的所有函数必须放在同一个源程序文件中2、strcpy库函数用于复制一个字符串。
若有以下定义:char*str1="copy",str2[10],*str3="hijklmn";char*str4,*str5="abcd";则对strcpy库函数的错误调用是()(1分)A、strcpy(str2,str1)B、strcpy(str3,str1)C、strcpy(str4,str1)D、strcpy(str5,str1)3、设有以下语句:char str[4][12]={"aaa","bbb","ccc","ddd"};char*strp[4];int i;for(i=0;i<4;i++)strp[i]=str[i];若0<=k<4,下列选项中对字符串的非法引用是()(1分)A、strpB、str[k]C、strp[k]D、*strp4、以下各选项企图说明一种新的类型名,其中正确的是()(1分)A、typedef v1int;B、typedef v2=int;C、typedef v1int v3;D、typedef v4:int;5、若以下定义和语句:int a[]={1,2,3,4,5,6,7,8,9,0};int*p,i;p=a;0<i<10,则对数组元素地址的正确表示是()(1分)A、&(a+1)B、a++C、&pD、&p[i]6、C语言标准库函数"fgets(string,n,fp)"的功能是()(1分)A、从文件fp中读取长度为n的字符串存入指针string指向的内存B、从文件fp中读取长度不超过n-1的字符串存入指针string指向的内存C、从文件fp中读取n个字符串存入指针string指向的内存D、从文件fp中读取不超过长度为n的字符串存入指针string指向的内存7、以下叙述中不正确的是()(1分)A、在函数中,通过return语句传回函数值B、在函数中,可以有多条return语句C、在C中,main后的一对圆括号中也可以带有形参D、在C中,调用函数,必需在一条独立的语句中完成8、若有以下定义:char a;int b;float c;double d;则表达式a*b+d-c值的类型为()(1分)A、floatB、intC、charD、double9、以下叙述中正确的是()(1分)A、输入项可以是一个实型常量,如:scanf("%f",3.5);B、只有格式控制,没有输入项,也能正确输入数据到内存,例如:scanf("a=%d,b=%d");C、当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf("%4.2f",&d);D、当输入数据时,必须指明变量地址,例如:scanf("%f",&f);10、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是()(1分)A、INPUT x、y、z;B、scanf("%d%d%d",&x,&y,&z);C、scanf("%d%d%d",x,y,z);D、read("%d%d%d",&x,&y,&z);11、若变量都已正确定义,a=2;b=3;printf(a>b?"***a=%d":"###b=%d",a,b);则程序段()(1分)A、没有正确的输出格式控制B、输出为:***a=2C、输出为:###b=2D、输出为:***a=2###b=212、设有如下的变量定义:int i=8,k,a,b;unsigned long w=5;double x=1.42,y=5.2;则以下符合C 语言语法的表达式是()(1分)A、a=a-=(b=4)*(a=3)B、x%(--3);C、a=a*3=2D、y=float(i)13、假设所有变量均为整型,表达式(a=2,b=5,a>b?a++:b++,a+b)的值是()(1分)A、7B、8C、9D、214、以下标识符中,不能作为合法的C用户定义标识符的是()(1分)A、ForB、printC、WORDD、sizeof15、以下合法的赋值语句是()(1分)A、x=y=100B、d--;C、x+y;D、c=int(a+b);16、在下列选项中,没有构成死循环的程序是()(1分)A、int i=100;whine(1){i=i%1001;if(i>100)break;}B、for(;;);C、int k=1000;do{k;}while(k>=1000);D、int s=36;while(s);--s;17、设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?b:d的结果为()(1分)A、4B、3C、2D、118、假定w、x、y、z、m均为int型变量,有如下程序段:w=1;x=2;y=3;z=4;m=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z;则该程序运行后,m的值是()(1分)A、4B、3C、2D、119、有定义语句:int a=4,b=5,c=6,x;,则以下选项中各程序段执行后,x的值不为6的是()(1分)A、if(a<6)x=6;else if(a<5)x=5;else x=4;B、if(a<6)x=6;if(a<5)x=4;if(b<c)x=c;C、if(a<b)x=b;if(a<4)x=4;if(c<a)x=a;D、if(c<a)x=4;else if(b<a)x=5;else x=6;20、在宏定义#define PI3.14159中,用宏名PI代替一个()(1分)A、单精度数B、双数度数C、常量D、字符串二、填空题(12道小题,共40分)1、计算机中内存储器的最小存储单位是字节,一个整数占个字节(2分)--------------------------------------------------------------------------------2、一个算法应该具有以下特点:、确定性、有零个或多个输入、有一个或多个输出、有效性(2分)--------------------------------------------------------------------------------3、唯一的一个三目运算符是(2分)--------------------------------------------------------------------------------4、printf("%5.3f\n",123456.12345);输出为(2分)--------------------------------------------------------------------------------5、描述命题“A小于B或小于C”的表达式为(2分)--------------------------------------------------------------------------------6、int i=0,s=0,a[10];while(i<10)s+=a[i++];等价于int i,s,a[10];for()(2分)--------------------------------------------------------------------------------7、已知一数组:a[0]=10,a[1]=20,a[2]=30,a[3]=40,a[4]=50,s是int型指针,s已指向a[4],现要使s指向a[2],则s=(2分)--------------------------------------------------------------------------------8、变量分为全局和局部两种,变量离开了其所定义的函数,其存储单元就会被释放。
C语言程序设计试卷(计本04级,信安04级,闭卷,2005年7月)班级学号姓名成绩一、单项选择题(在下面每小题的A、B、C、D四个选项中,只有一个选项是正确的。
请选择正确的选项并填写到括号内。
选择正确的得分。
每小题1分,共10分)1、“\n”是()A、合法标识符B、C语言的关键字C、合法的字符串D、既不是C语言的关键字,也不是合法的字符串或标识符2、0xabcdUL是()A、字符型常量B、整型常量C、浮点型常量D、非法常量3、While是()A、合法标识符B、C语言的关键字C、合法的字符串D、既不是C语言的关键字,也不是合法的字符串或标识符4、不考虑字符串的终结符,字符串"\078ab\t\x30\\\n"的长度是:A、6B、7C、8D、155、88.F是()A、字符型常量B、整型常量C、浮点型常量D、非法常量6、ˊ\x123ˊ是()A、字符型常量B、整型常量C、浮点型常量D、非法常量7、5e5是()A、字符型常量B、整型常量C、浮点型常量D、非法常量本题第8、第9、第10小题参考下列说明:struct node{int i;int j[2];} a[]={{-1,0,1},{1,0,2},{0,-1,3},{0,1,4}};struct node *p=&a[0];8、表达式~a[1].j[0]+1的值是()A、-1B、0C、1D、29、表达式(*(p+1)).i<<2的值是()A、1B、2C、3D、410、表达式(p+2)->j[1]&0123的值是()A、1B、2C、3D、4二、多项选择题(在下面每小题的A、B、C、D四个选项中,有两个或两个以上的选项是正确的。
请选择正确的选项并填写到括号内。
多选、少选、错选均不得分。
每小题2分,共10分)1、以下选项可作为C语言合法常量的是()。
A、1UB、0678C、0XABCDEF12LD、2005F2、以下不能定义为用户标识符的是()。
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 语言程序设计期末考试试题及其答案一、单项选择题(本大题共20 题,每题 2 分,共40分)1、以下不是C 语言的特点的是( )A、 C 语言简洁、紧凑B、能够编制出功能复杂的程序C、 C 语言可以直接对硬件进行操作D、 C 语言移植性好2、以下不正确的C 语言标识符是( )A、ABC B 、abc C、a_bc D、ab.c3、一个C 语言程序是由( )A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成4、一个算法应该具有“确定性”等5 个特性,对另外4 个特性的描述中错误的是( )A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性5、设变量a 是整型,f 是实型,i 是双精度型,则表达式10+‘a'+i*f 值的数据类型为( )A、intB、float C 、double D、不确定6在C语言中,char型数据在内存中的存储形式是()A、补码B、反码C、源码D、ASCII码7、有如下程序,输入数据:12345M678V。
只>后(<CR>表示回车),x的值是( ) 。
#include<stdio.h>main(){int x;float y;scanf("%3d%f",&x,&y);}A、12345B、123C、45D、3458、若有以下定义int a,b; float x,则正确的赋值语句是()A、a=1,b=2B、b++;C 、a=b=5D、b=int(x);9、以下程序的执行结果是( )#include<stdio.h>{int i=10,j=10; printf("%d,%d\n",++i,j--);}A 、11,10B 、9,10C 、11,9D 、10,910、巳知字母 A 的ASCII 码是65,以下程序的执行结果是( ) #include<stdio.h>main() { char c1='A',c2='Y';printf("%d,%d\n",c1,c2);A、A,YB、65,65C、65,90D、65,8911、下列运算符中优先级最高的是( )A、vB、十C、%D、!=12、设x、y和z是int型变量,且x = 3, y = 4, z= 5,则下面表达式中值为0 是( ) 。
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语言中,数组的索引从____开始。
2007-2008 学年第一学期期末班号学号姓名成绩《 C 程序设计》期末考试卷注意事项:1、此卷为闭卷考试,120分钟完成;2、笔试成绩为卷面成绩*0.7。
一、选择题 (20分) 1, 下列运算符中最高优先级的运算符是 DA) && B) % C) -= D)!2, 对定义语句int a[]={1,2,3,4,5,6,7,8,9,10},*p=a,i=5;数组元素地址的正确表示是DA)&(a+1) B)a++ C)&p D)&p[i]3, 以下结构定义,请指出不正确赋值语句是struct date{int month;int day;int year;};struct student{int num;char name[20];char sex;struct date birthday;float score;char addr[30];}stu1,stu2;A) stu1.num=10; B) stu1.score+=stu2.score;C) stu1=stu2; D) stu1.birthday.month=12;4,以下程序:#include <stdio.h>void main(){FILE *fp;fp=fopen(“f1.txt”,”w”);fprintf(fp,”abc”);fclose(fp);}若文本文件f1 .txt中原有内容为good,则运行以下程序后文件f1.txt中的内容为AA) abc B)abcd C) goodabc D) abcgood5,以下程序的运行结果是int f(int i){static int n=1;return n=n*i;}int main(){int i;for (i=1;i<5;i++) printf(“%3d”,f(i));printf(“\n”);} BA)1 2 3 4 B)1 2 6 24 C)1 2 4 6 D)1 3 6 24二、填空题 (30分)1, 若有定义double x; (5分)(1)使指针p可以指向变量x的定义语句是______double *p;___________(2)使指针p指向变量x的赋值语句是________p=&x;________(3)通过指针p给变量x读入值的scanf函数调用语句是____scanf(“%lf”,p);____________(4)通过指针p给变量x赋值语句是______*p=1.0;_____________(5) 通过指针p输出x的值的语句是_______printf(“%lf”,*p);____________ 2,以下函数用以求x的y次方。
C语言程序设计期末考试卷及答案考试时间:3小时满分:100分一、选择题(每题2分,共20分)1. 下列哪个不是C语言的关键字?A. intB. floatC. doubleD. printf答案:D2. 在C语言中,用于判断两个数是否相等的运算符是:A. >B. <C. ==D. >=答案:C3. 下面哪个选项是正确的函数声明方式?A. void sum(int a, b);B. int multiply(int x, int y);C. add(int a, int b);D. double divide(int a, int b);答案:B4. 下面哪个函数原型声明是错误的?A. void calculate(int a, int b);B. int calc(int x);C. int comp(float x, float y);D. double calculate(int x, int y);答案:D5. 在C语言中,用于循环执行某段代码的关键字是:A. ifB. elseC. switchD. while答案:D6. 下面哪个选项是正确的数组声明方式?A. int[5] numbers;B. numbers[5] int;C. int numbers[5];D. array = int[5];答案:C7. 在C语言中,用于读取用户输入的函数是:A. puts()B. scanf()C. print()D. read()答案:B8. 下列哪个运算符用于访问结构体成员?A. .B. ,C. :D. ;答案:A9. 在C语言中,用于定义常量的关键字是:A. defineB. constantC. constD. variable答案:C10. 下面哪个选项是正确的条件语句?A. if (x > 10) { printf("x大于10"); }B. if x > 10 { printf("x大于10"); }C. if x > 10 printf("x大于10");D. if x > 10 then printf("x大于10");答案:A二、编程题(共80分)题目一:请编写一个C语言程序,要求从键盘上输入一个整数n,然后计算并输出1到n之间所有整数的和。
2004级计算机网络技术《C语言程序设计》试卷(A) 姓名学号班级成绩一、选择题(每小题1分,共40分)(1)在下列各组符号中,哪一组可用做变量名()A) A3B 3aB $ +aB) *x _b5_ ifC) next_day longD) A3B 3aB _b5_(2)十进制数127转换成二进制数为()A)11111111 B)01111111 C)10000000 D)11111110(3)结构化程序设计所规定的三种基本控制结构是()A)输入、处理、输出B)树形、网形、环形C)顺序、选择、循环 D)主程序、子程序、函数(4)用C语言正确描述“A小于B或小于C”的是( )A) A〈B||A〈C B〉A〈B or A〈CC) A〈B + A〈C D〉 A〈B&& AC(5)英文小写字母d的ASCII码为100,英文大写字母D的ASCII码为()A)50 B)66 C)52 D)68(6)若有定义:int a=8, b=5, c ; , 执行语句c=a/b+0.4; 后,c的值为()A)1.4 B)1 C)2.0 D)2(7)若变量a是int类型,并执行了语句:a=‘A’+1.6; , 则正确的叙述是()A)a的值是字符C B)a的值是浮点型C)不允许字符型和浮点型相加D)a是值是字符‘A’的ASCII值加上1。
(8)以下程序段的输出结果是()int a=1234;printf (“%2d/n”,a);A)12 B)34C)1234 D)提示出错、无结果(9)有如下变量定义:int k=7,x=12;则能使值为3的表达式是( )A) x%=k+2 B)x-k,k+k,x+kC)x%=k-k%5 D)x%=k)-(k%=5)(10)若有说明语句:int a,b,c,*d=&c;,则能正确从健盘读入三个整数分别赋给变量a、b、c的语句是()A)scanf(“%d%d%d”,&a,&b,d);B)scanf(“%d%d%d”,&a,&b,&d);C)scanf(“%d%d%d,a,b,d); D)scanf(“%d%d%d”,a,b,*d);(11)以下叙述中正确的是( )A)输入项可以是一个实型常量,例如:scanf(“%f”,3.5);B)只有格式控制,没有输入项,也能正确输入数据到内存,例如:scanf(“a=%d,b=%d”);C)当输入一个实型数据时,格式格式控制部分可以规定小数点后的位数,例如:scanf(“%4.2”,&f);D)当输入数据时,必须指明变量地址,例如:scanf(“%f”,&f);(12)以下叙述正确的是()A)可以把define 和if定义为用户标识符B)可以把define定义为用户标识符,但不能把if定义为用户标识符C)可以把if定义为用户标识符,但不能把define定义为用户标识符D)define和if都不能定义为用户标识符(13)若定义:int a=511, *b=&a; ,则printf(“%d/n”, *b);的输出结果为()A)无确定值 B)a的地址 C)512 D)511(14)设x和y均为int 型变量,则以下语句的功能是()x+=y; y=x-y; x-=y;A) 把x和y按从大到小排列B)把x和y按从小到大排列C)无确定结果D)交换x和y中的值(15)下面关于函数类型的说法哪一种是正确的()A)函数类型是由参数决定的 B)函数类型是由系统自动决定的C)函数类型就是返回值的类型 D)函数类型是由函数的原型说明决定的(16) 用C语言正确描述“a和b都大于c”的是( )A)a>b>c B)a>b && b>c C)a>b and b>c D)a>b || b>c(17)以下程序的输出结果是()main(){ int a=4,b=5,c=0,d;d=a&&b‖c;printf(“%d\n”,d);}A)1 B)0 C)非0的数 D) -1(18)以下程序的输出结果是()main(){ int a=12,b=12;printf(“%d%d\n”,--a,++b);}A)10 10 B)12 12 C)11 10 D)11 13(19) 表达式!x 等价于_____。
C语言程序设计期末考试试题含答案一、选择题(每题 3 分,共 30 分)1、以下选项中,不是 C 语言关键字的是()A intB floatC classD char答案:C解析:在 C 语言中,class 不是关键字,int、float 和 char 都是常见的数据类型关键字。
2、以下变量定义中,正确的是()A int a=b=5;B char a='A';C float a=55, b=66;D double a; b;答案:C解析:A 选项中不能在定义时连续赋值;B 选项应该是 char a ='A';注意单引号;D 选项应该是 double a, b; 中间用逗号分隔。
3、以下程序段的输出结果是()```cint a = 5, b = 4, c = 6;if (a > b && a > c)printf("a 最大\n");else if (b > a && b > c)printf("b 最大\n");elseprintf("c 最大\n");```A a 最大B b 最大C c 最大D 编译错误答案:C解析:因为 5 不大于 6,所以执行 else 部分,输出“c 最大”。
4、以下循环语句执行的次数是()```cfor (int i = 0; i < 5; i++){printf("%d ", i);}```A 4 次B 5 次C 6 次D 无限次答案:B解析:从 0 到 4 ,一共 5 次。
5、以下数组定义中,正确的是()A int a5 ={1, 2, 3, 4, 5, 6};B int a ={1, 2, 3};C int a5 ={1, 2};D int a3 =(1, 2, 3);答案:B解析:A 选项数组长度为 5,却初始化了 6 个元素;C 选项只初始化了前两个元素,后面三个元素默认为 0;D 选项初始化方式错误,应该用花括号。
北京航空航天大学自动化学院试卷(共7页)2004 ~ 2005学年第 1 学期班级:学号:姓名: . 考试科目: C语言程序设计(A卷)成绩:分说明:1、本试卷满分为100分。
2、闭卷考试,试卷不得拆开,不允许自带草稿纸。
3、填空题与选择题答案直接写在试卷上,做在草稿纸上无效。
一.填空题: (每空1分,共10分)1、一个C程序是由若干函数构成的,其中必须有一个函数。
2、表达式1 +2/3 + 4%5 + (6>7) +(8, 9)的值是。
3、执行printf(“%d,%d”,(i=j,++i),(j=5,j++)); 输出结果为。
4、判断变量c中是数字字符的逻辑表达式是。
5、设x为float型变量,y为double型变量,a为int型变量,b为long型变量,c 为char型变量,则表达式c+*+//的结果类型为。
x+yybxa6、若有说明int x=10,y=20;,请写出printf(“%3x\n”, (x%y, x-y, x+y))语句对应的输出结果是。
7、设int j = 10; 执行j + = j*j; 后j的值是。
8、设float (*pf) ( ), *qf( );pf与qf的意义分别是和。
9、设宏定义 #define D(x) x/x则引用D(2+3)后的值是。
二.单项选择题 : (在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内。
每小题1分,共10分)1.以下正确的 C语言标识符是:()(A) %x (B) a+b (C) a123 (D) test!2.下列运算符中优先级最低的是()(A) ++(B) ( ) (C) →(D) +=3.设int i=0,j=1,k=2,a=3,b=4,c=5;执行表达式(a=i<j)&&(b=j<k)&&(c=i,j,k)后,a,b,c的值分别是()(A) 1,1,5 (B) 1,0,2(C) 3,4,5 (D) 1,1,04.设int a=1,b; 执行下列switch语句后,b获值为2的是()(A) switch(a) (B) switch(a){ case 1: b=1; { case 1: b=1; break;case 2: b=2; case 2: b=2; break;default : b=3; default : b=3; break;} }(C) switch(a) (D) switch(a){ case 1: b=1; { case 1: b=1; break;case 2: b=2; break; case 2: b=2;default : b=3; default : b=3;} }5. 下列程序段运行后,输出GOOD的行数是()int i,j,k;for(i=1;i<3;i++)for(j=1;j<3;j++)for(k=i;k<j;k++) printf("GOOD\n");(A) 27 (B) 3 (C) 1 (D) 96. 二维数组正确的初始化是()(A)char str[][3]={“a ”,”1”};(B)char str[][3]={‘abc’,’4’};(C)char str[3][]={“a”,”1”};(D)char str[][3]=‘a’,’1’,’t’;7. 以下各判断是否为素数的函数中(是素数返回1,不是素数返回0),正确的是()(A) (B)#include <math.h> #include <math.h>prime(int n) prime(int n){ {for(int i=2;i<=sqrt(n);i++) for(int i=2;i<=sqrt(n);i++)if(n%i==0) if(n%i==0)return 0; return 1;else elsereturn 1; return 0;} }(C) (D)#include <math.h> #include <math.h>prime(int n) prime(int n){ {for(int i=2;i<=sqrt(n);i++) for(int i=2;i<=sqrt(n);i++)if(n%i==0) break; if(n%i==0)return 0; return 0return 1; return 1;} }8、以下程序段()int x=-1;do{x=x*x;printf("%d\n",x);}while(!x);A.是死循环 B. 循环执行两次C. 循环执行一次D. 有语法错误9、对于函数,下列叙述中正确的是()A.在调用某函数前,必须对该函数作原型说明,否则一定出错。
C程序设计期末考试习题(含答案)c语言程序设计期末试题A(含答案)一、单项挑选题(挑选一个最佳答案,每题2分,共20分)1.一个C程序的执行是从( )。
A) 本程序的main函数开头,到main函数结束B) 本程序文件的第一个函数开头,到本程序文件的最后一个函数结束C) 本程序的main函数开头,到本程序文件的最后一个函数结束D) 本程序文件的第一个函数开头,到本程序main函数结束2.下列选项中,不能用作标识符的是( )。
A) _1234_ B) _1_2 C) int_2_ D) 2_int_3.以下定义语句中正确的是( )。
A) char a='A'b='B'; B) float a=b=10.0;C) int a=10,*b= D) float *a,b=4.设有以下定义:#define d 2int a=0; double b=1.25; char c=’A’;则下面语句中错误的是()。
A) a++; B) b++ C) c++; D) d++;5.以下4个选项中,不能作为一条C语句的是( )。
A) {;} B) a=0,b=0,c=0; C) if(a>0); D) if(b==0) m=1;n=2;6.有以下定义语句double a,b; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是( )。
A) a=a+b=b++ B) w%(int)a+b) C) (c+w)%(int)a D) w=a==b;7.设有定义:int n=0,*p=则以下选项中,正确的赋值语句是( )。
A) p=1; B) *q=2; C) q=p; D) *p=5;8.设有定义:int a,*pa= 以下scanf语句中能正确为变量a读入数据的是( )。
A) scanf(“%d”,pa) ; B) scanf(“%d”,a) ;C) scanf(“%d”, D) scanf(“%d”,*pa);9.若有说明:char*language[]={”FORTRAN”,”BASIC”,”PASCAL”,”JA V A”,”C”};则表达式*language[1]>*language[2]比较的是()。
c本科四试题及答案一、选择题(每题2分,共20分)1. 以下哪项是C语言中合法的标识符?A. 2variableB. variable2C. _variableD. variable$答案:C2. C语言中,用于定义一个整型变量的关键字是?A. intB. floatC. doubleD. char答案:A3. 下列哪个选项不是C语言中的控制结构?A. 顺序结构B. 选择结构C. 循环结构D. 函数结构答案:D4. 在C语言中,以下哪个运算符用于比较两个数是否相等?A. ==B. !=C. <=D. >=答案:A5. C语言中,以下哪个函数用于计算并返回字符串的长度?A. strcat()B. strcpy()C. strlen()D. strcmp()答案:C6. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. returnD. function答案:B7. C语言中,以下哪个函数用于将一个字符串复制到另一个字符串?A. strcat()B. strcpy()C. strcmp()D. strlen()答案:B8. 在C语言中,以下哪个关键字用于声明一个函数的返回类型?A. intB. voidC. returnD. function答案:A9. C语言中,以下哪个运算符用于执行算术运算?A. %B. +C. &&D. ||答案:B10. 在C语言中,以下哪个函数用于将浮点数转换为字符串?A. sprintf()B. printf()C. scanf()D. atoi()答案:A二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量的正确语句是___________。
答案:int variable;2. C语言中,用于输出的函数是___________。
答案:printf();3. 用于在C语言中声明一个字符型变量的关键字是___________。
2005-2006学年第1学期2004级《C++面向对象程序设计》期末考试试题(A卷)考试时间:2006年1月8日班级学号姓名✧本试卷满分100分;✧请将答案写在答题纸上,写明题号,不必抄题,字迹工整、清晰;✧请在答题纸和试题纸上都写上你的班级,学号和姓名,交卷时请将试题纸、答题纸和草纸一并交上来。
一、单选题(共10分,每题1分)1.已知f1和f2是同一类中的两个成员函数,若f1的实现代码体内不能调用f2,则最可能的情况是:(A)f1和f2都是静态函数(B)f1是静态的,f2不是(C) f1不是静态的,f2是静态的(D)f1和f2都不是静态函数2.一个对象所占的内存空间中可以保存下面哪类数据?(A) 静态数据成员(B) 内联函数代码(C) 所有成员函数的入口地址(D) 虚函数表的入口地址3.下面关于new 和delete操作符的说法,哪个是不正确的:(A) 使用new操作符,可以动态分配全局堆中的内存资源。
(B) 用new申请的数组,必须用delete[] 释放。
(C) 用new申请的空间,即使不调用delete释放掉,当程序结束时也会自动释放掉。
(D) 执行语句A * p=new A[100];时,类A的构造函数会被调用100次。
4.下列哪种函数可以是虚函数:(A) 自定义的构造函数(B) 拷贝构造函数(C) 静态成员函数(D) 析构函数5.C++的最小编译单位是:(A) 工程中每个.cpp和.h文件(B) 工程中每个.cpp文件(C) 工程中每个.h文件(D) 工程中所有文件6.下面表达式中不可能作为左值(赋值运算符左侧)的是:(A)a=b (B)*p (C)f(a,b) (D)&a7.在实现函数A& f(A & obj)时,下面的哪一个表达式可以出现在return 语句中?(A)new A( ) (B)obj (C)&obj (D) new A(obj)8.判断类A的两个对象a1与a2是否是同一个对象的方法是:(A)利用调试器,查看a1与a2各成员数据的值是否相等(B)重载 == 运算符,用它来判断各成员数据的值是否相等。
广州大学学年第学期考试卷
课程程序设计基础考试形式(开/闭卷,考试/查)信息与机电工程学院系专业班级
学号姓名
一、选择题(每题1分,共10分)
1、一个C语言源程序是由(B)。
A、一个主程序和若干个子程序组成
B、一个或多个函数组成
C、若干个过程组成
D、若干个子程序组成
2、以下不正确的C语言标识符是( D )。
A、A BC
B、a bc
C、a_bc
D、a b.c
3、设n=10,i=4,则运算n%=i-1执行后,n 的值是( D )。
A、0
B、3
C、2
D、1
4、设int a=4,b=2,则++a-b的结果为(B ),a的结果为( D );b的结果为( A )。
A、2
B、3
C、4
D、5
5、C语言用( D )表示逻辑“假”的值。
A、t rue
B、t或y
C、非零整数值
D、整数0
6、对于for(表达式1;;表达式3)可以理解为(B)。
A、for(表达式1;0;表达式3)
B、for(表达式1;1;表达式3)
C、for(表达式1;表达式1;表达式3)
D、for(表达式1;表达式3;表达式3)
7、在定义int a[10];之后,对a的引用正确的是(D )。
A、a[10]
B、a[6.3]
C、a(6)
D、a[10-10]
8、以下不正确的叙述是(D)。
A、宏替换不占用运行时间
B、宏名无类型
C、宏替换只是字符替换
D、宏名必须用大写字母表示
二、填空题(每空2分,共20分)
阅读以下C代码,将答案填入___(n)___内。
[程序1]
#include <stdio.h>
int p(int k,int a[])
{int m,i,c=0;
for(m=2;m<=k;m++){
for(i=2; i<=m;i++)
if(!(m%i)) break;
if(i==m) a[c++]=m;
}
return c;
}
#define MAXN 20
void main ( )
{int i,m,s[MAXN];
m=p(13,s);
for(i=0;i<m;i++)
printf("%4d\t",s[i]);
printf("\n");
}
函数int p(int k,int a[])的功能是(1)__________________。
[程序2]
本程序找出正文文件“st.dat”中的各个不同整数。
该正文文件中各整数间以空格字符、TAB符(制表符)、回车符分隔。
程序中用数组b[]存贮不同的整数,变量k为已存入数组b中的不同整数的个数,并假定文件中的不同整数个数不超过1000个。
#include<stdio.h>
#define N 1000
main ( )
{ FILE ___(2)___;
int b[N],d,i,k ;
if ((fpt=fopen(“st.dat”,”r”)==NULL) { /* 以读方式打开文件*/
printf (“Cannot open file.\n”);
return;
}
k=0;
while (fscanf (___(3)___)==1) { /* 从文件中读一个整数*/
b[k]=d;
for (i=0;b[i]!=d;i++);
if (i==k) k++;
}
fclose(fpt);
for (i=0;i<k;i++) printf (“%d”, b[i]);
printf (“\n”);
}
[答案] (2)________________________________________
(3)________________________________________
[程序3]
#include <stdio.h>
void s(int a[],int n)
{int i,j,t;
for (i=0;i<n;i++){
for(t=a[i],j=i-1;j>=0&&t<a[j];j--)
a[j+1]=a[j];
a[j+1]=t;
}
}
main( )
{int i,c[]={15,3,8,9,6,2};
s(c,6);
for(i=0;i<6;i++)
printf("%4d\t",c[i]);
printf("\n");
}
程序3的输出结果是(4)______________;
函数s(int a[],int n)的功能是(5)_________________________。
4、执行下列语句后,a的值是_ ___60_____
int a=12; a*=2+3;
5、定义int a[]={1,2,3,4,5,6},*p=a;表达式(*++p)--的值是__2___。
6、设a=13.6,b=8 表达式a+b%3*(int)(a-b)/4的值为___15.6___。
7、C语言源程序文件的后缀是___________,经编译后生成的文件的后缀是_________,连接后生成的文件的后缀是.exe。
三、理解题(每题5分,共50分)
1、以下程序,从键盘上输入”how are you?”,输出是什么?
main()
{ char a[7];
scanf(“%s”,a);
printf(“%s”,a);
}
2、以下程序执行结果是什么?( 45 )
#include<stdio.h>
main()
{
int a[3][3]={1,2,3,4,5,6,7,8,9},i,s=1;
for(i=0;i<=2;i++)
s=s*a[i][i];
printf(“s=%d\n”.s);
}
3、若已定义int a[]={1,2,3,4,5,6};且有*p=a;则表达式(*++p)++的值是____2______.
#include <stdio.h>
void FUN(int x,int y)
{
int temp;
temp=x;
x=y;
y=temp;
}
void main()
{
int a=10,b=20;
FUN(a,b);
printf(“%d,%d”,a,b);
}
5、以下程序的执行结果是: # include <stdio.h>
typedef struct{
long x[2];
int y[4];
char z[8];
}MYTYPE;
void main()
{
MYTYPE a;
printf("%d\n",sizeof(a)); }
#include <stdio.h>
main()
{
int *p,i;
i=5;
p=&i;
i=*p+10;
printf(“i=%d\n”,i); }
7、以下程序的执行结果#include<stdio.h>
int x=1;
func(int x)
{
x=3;
}
void main()
{
func(x);
printf(“x=%d\n”,x); }
8、以下程序的执行结果#include <stdio.h> struct stru
{
int x;
char c;
};
void func(struct stru *b)
{
b->x=20;
b->c='y';
}
void main()
{
struct stru a={10,'x'},*p=&a;
func(p);
printf("%d,%c\n",a.x,a.c);
}
9、以下程序输入language programming<CR>的执行结果#include <stdio.h>
main()
{
char str[30];
gets(str);
printf("str=%s\n",str);
}
10、以下程序的执行结果
#include <stdio.h>
main()
{
int i,j;
for(i=4;i>=1;i--)
{
printf(“*”);
for(j=1;j<=4-i;j++)
printf(“\n”);
}
}
四.编程(每小题10分,共20分)
1、编写一段将n个数按输入顺序的逆序排列输出的程序,要求应用指针且不另外开设数组。
2、编写一段实现二分法查找的程序。