河海大学C语言期末试题A
大学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语言程序设计》2016-2017学年第一学期期末考试A卷
河海大学2016-2017学年第一学期期末考试《C语言程序设计》试题(A)卷姓名:班级:学号:成绩:一、单项选择题(每题1分,20分)1.若x、i、j、k都是整型变量,则计算下面表达式后x的值为.x=(i=4,j=16,k=32)A)4B)16C)32D)522.语句#include〈stdio.h>的功能是_________.A)定义stdio.h B)将stdio.h包含到语句所在的程序中C)声明stdio.h D)stdio.h包含了语句所在的程序3.下列四组选项中,均不是C语言关键字的选项是________.A)DEFIN IF TYPEB)getc char printfC)include case scanfD)while go pow4.下面正确的字符常量是______.A)“c”B)‘K’C)‘’D)‘23’5.下列四组选项中,均是合法转义字符的选项是___.A)‘\"'‘\\’‘\n'B)‘\'‘\017’‘\"'C)‘\018’‘\f’‘xab’D)‘\\0’‘\101'‘xlf’6.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=‘A’+‘6'-‘3’后,c2中的值为_____________.A)D B)68C)不确定的值D)C7.设有说明语句:char w;int x;float y;double z;则表达式w*x+z—y值的数据类型为______.A)float B)char C)int D)double8.判断char型变量ch是否为大写字母的正确表达式是.A)‘A’〈=ch<=‘Z’B)(ch〉=‘A')&(ch〈=‘Z’)C)(ch〉=‘A')&&(ch〈=‘Z’)D)(‘A’〈=ch)AND(‘Z'>=ch)9.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假".则以下不能满足要求的表达式是___________.A)A%2==1B)!(A%2==0)C)!(A%2)D)A%210.以下程序的运行结果是.void main(){int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A)6,1B)2,1C)6,0D)2,011、设有程序段int k=10;while(k==0)k=k—1;这下面描述中正确的是_______.A)while循环执行10次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次12.语句while(!E);中的表达式!E等价于________.A)E==0B)E!=1C)E!=0D)E==113.若i为整型变量,则以下循环执行次数是___________.for(i=2;i==0;)printf("%d”,i——);A)无限次B)0次C)1次D)2次14.以下为一维整型数组a的正确说明是________.A)int a(10);B)int n=10,a[n];C)int n;D)#define SIZE10;15.以下正确的函数定义形式是______.A)double fun(int x,int y){}B)double fun(int x;int y){}C)double fun(int x,int y);{}D)double fun(int x,y);{}16.变量的指针,其含义是指该变量的________.A)值B)地址C)名D)一个标志17.若有说明语句char a[]=”It is mine";char*p=”It is mine”;则以下不正确的叙述是_______.A)a+1表示的是字符t的地址B)p指向另外的字符串时,字符串的长度不受限制C)p变量中存放的地址值可以改变D)a中只能存放10个字符18.若执行fopen函数时发生错误,则函数的返回值是.A)地址值B)0C)1D)EOF19.若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是_____.A)”ab+”B)"wb+”C)”rb+”D)”ab”20.下方程序答案正确的是_________.#include〈string.h〉struct STU{int num;float TotalScore;};void f(struct STU p){struct STU s[2]={{20044,550},{20045,537}};p.num=s[1].num;p.TotalScore=s[1].TotalScore;}main(){struct STU s[2]={{20041,703},{20042,580}};f(s[0]);printf("%d%3.0f\n”,s[0].num,s[0].TotalScore);}程序运行后的输出结果是()A)20045537B)20044550C)20042580D)20041703二、读程序填空(每空2分,共20分)1.main(){int i,j,x=0;for(i=0;i<3;i++){x++;for(j=0;j<=3;j++){if(j%2)continue;x++;}x++;}printf(“x=%d\n”,x);}则程序的执行结果为__⑴_.2.下面程序为以每行4个数据的形式输出数组a,请填空.#define N20main(){int a[N],i;for(i=0;i〈N;i++)scanf(”%d",⑵);for(i=1;i<=N;i++){if(⑶)printf("\n”);printf("%3d",a[i-1]);}printf("\n”);}3.下面程序为把数组a中数据复制到数组b中并输出.#define M5void main(){int i,a[5]={23,15,50,3,21};int b[M];int*p=a,*q=b;for(i=0;i〈5;i++)⑷;printf(”Output these numbers:\n”);⑸;for(i=0;i<M;i++)printf(”%d",*q++);printf("\n");}4.以下fun函数的功能是:在第一个循环中给a数组元素依次赋1,2,3,4,5,6,7,8,9,10;在第二个循环中a数组元素中的值对称折叠,变成1,2,3,4,5,5,4,3,2,1;fun(int⑹){int i;for(i=1;i<=10;i++)⑺=i;for(i=0;i<5;i++)⑻=a[i];}5.以下程序的功能是输出如下形式的方阵:13141516910111256781234请填空.main(){int i,j,x;for(j=4;j⑼;j--){for(i=1;i<=4;i++){x=(j—1)*4+⑽;printf("%4d”,x);}printf("\n”);}}三、编程题(60分,在下面的空白处编写程序)1、编程计算下面函数的值,其中x由键盘输入.(12分)—1x≤-1y=xe—1<x〈1(x+1)2x≥12.一球从200米高度自由落下,每次落地后反跳回原高度的一半再落下,求它在第15次落地时,共经过多少米?第15次反弹多高?(6分)3.编写一函数sum,求二维数组(M*M)上三角(含对角线)之和.(12分)4.从键盘上输入数组str(长度不大于100),再从键盘上输入一个字符,从数组str中删除该字符,并输出删除字符后的字符串.(12分)5.找出数组a[N]中的最大数及其下标.(10分)6.编写子函数search,从字符串str中查找某字符ch(str、ch由主函数提供)第一次出现的位置和出现的次数;函数返回字符的位置,若串str中没有字符ch,则返回-1.比如:当str为"abmcmnkt”,ch为'm’时,位置为3,次数为2.要求:不允许使用全局变量.主程序部分源代码如下.(8分)#include<stdio.h>int search(char str[],char ch,int*p){}main(){int k,m;char string[20],ch;printf(”input a string and a character\n");gets(string);ch=getchar();k=search(string,ch,&m);printf(”the first position is%d and the number of this character is%d\n",k,m);}。
2022年河海大学公共课《C语言》科目期末试卷B(有答案)
2022年河海大学公共课《C语言》科目期末试卷B(有答案)一、填空题1、已有定义int a;float b,x;char cl,c2;为使a=3、b=6.5、x=12.6、cl='a'、c2='A',正确的scanf函数调用语句是_______,数据输入的形式应为_______。
2、C语言源程序的基本单位是________3、结构化程序由________、________ 、________ 3种基本结构组成。
4、表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为_______。
5、C语言所提供的基本数据类型包括:单精度型、双精度型、_______、_______和_______。
6、测试char型变量a第6位是否为1的表达式是_______(设最右位是第1位)。
7、下面程序段中循环体的执行次数是_______。
a=10;b=0;do{b+=2;a-=2+b;}while(a>=0);8、下面程序段的运行结果是_______。
int i=5;char c[6]="abcd";do{c[i]=c[i-1];}while(--i>0);puts(c);9、下面程序wdm的运行结果是_______。
int i,x[10]={2,3,0,3,0,2,3,2,1,3},y[4]={0};for(i=0;i<10;i++)y[x[i]]++;printf("%d\n",y[3]);10、下面程序可求出图中方括号内的元素之积,请填空。
# include<stdio.h>int main(){ int x[3][3]={7,2,1,3,4,8,9,2,6};int s,*p;p=_______;s=*p*_______;printf("product=%d",s);return(0);}二、选择题11、在C语言中,要求运算数必须是整型的运算符是( )。
大学生期末c语言试题及答案
大学生期末c语言试题及答案一、选择题(每题2分,共20分)1. C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A2. 下列关于数组的描述中,正确的是:A. 数组必须在定义时初始化B. 数组的元素类型必须一致C. 数组的下标可以是实数D. 数组的下标可以是负数答案:B3. C语言中,用于文件操作的库函数位于哪个头文件中?A. stdio.hB. math.hC. string.hD. stdlib.h答案:A4. 下列哪个运算符不能用于赋值?A. =B. +=C. *=D. %答案:D5. C语言中,用于定义一个函数的关键字是:A. functionB. defineC. defD. void答案:B6. 下列关于指针的描述中,错误的是:A. 指针可以存储地址B. 指针可以存储值C. 指针可以作为函数的参数D. 指针可以作为函数的返回值答案:B7. C语言中,用于定义一个宏的预处理指令是:A. #defineB. #includeC. #pragmaD. #if答案:A8. 下列关于循环的描述中,正确的是:A. for循环可以没有初始化表达式B. while循环可以嵌套C. do-while循环至少执行一次D. 所有循环都可以使用break语句退出答案:C9. C语言中,用于定义一个枚举类型的关键字是:A. enumB. structC. unionD. typedef答案:A10. 下列关于函数的描述中,错误的是:A. 函数可以没有返回值B. 函数可以有多个返回值C. 函数可以递归调用D. 函数可以嵌套定义答案:D二、填空题(每题2分,共20分)1. 在C语言中,字符'A'的ASCII码值是______。
答案:652. 若int a = 10; int b = 20; 则表达式a++ + b的结果是______。
大学期末c语言考试题库及答案
大学期末c语言考试题库及答案一、单项选择题(每题2分,共20分)1. C语言中,以下哪个是合法的标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B2. 下列哪个选项是C语言中的关键字?A. includeB. intC. mainD. sum答案:B3. 在C语言中,用于定义一个整型变量的关键字是?A. intB. floatC. doubleD. char答案:A4. C语言中,以下哪个函数用于计算两个数的和?A. max()B. min()C. sum()D. average()答案:C5. 下列哪个选项是C语言中正确的字符串定义方式?A. char str[10] = "Hello";B. char str[10] = 'Hello';C. char str = "Hello";D. char str[10] = "Hello", "World";答案:A6. C语言中,以下哪个是正确的二维数组定义?A. int array[3, 4];B. int array[3][4];C. int array[][] = {1, 2, 3, 4};D. int array[3][4] = {1, 2, 3};答案:B7. C语言中,以下哪个是正确的函数定义?A. void myFunction();B. int myFunction() {}C. void myFunction() {}D. int myFunction() {}答案:C8. 在C语言中,以下哪个选项用于输入一个整数?A. scanf("%d", &number);B. printf("%d", &number);C. gets(&number);D. puts(&number);答案:A9. C语言中,以下哪个选项用于输出一个浮点数?A. printf("%f", number);B. scanf("%f", number);C. gets(number);D. puts(number);答案:A10. 在C语言中,以下哪个选项是正确的循环结构?A. for (int i = 0; i < 10; i--)B. for (int i = 0; i <= 10; i++)C. for (int i = 0; i < 10; i++)D. for (int i = 10; i--; i < 0)答案:C二、填空题(每题2分,共20分)1. 在C语言中,表示逻辑“与”的运算符是 ________ 。
c语言期末试题及答案及详解
c语言期末试题及答案及详解一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的关键字?A. defineB. caseC. functionD. include答案:B2. C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A3. 若有以下代码:```cint a = 5, b = 10;a = a + b;b = a - b;a = a - b;```执行后变量a的值是:A. 5B. 10C. 15D. 0答案:B4. 下列关于指针的描述,错误的是:A. 指针可以指向一个变量B. 指针可以指向一个数组C. 指针可以指向一个函数D. 指针不可以指向一个指针答案:D5. 在C语言中,以下哪个函数用于将字符串从源字符串复制到目标字符串?A. strcpyB. strcatC. strcmpD. strlen答案:A6. 下列哪个选项是C语言中合法的数组声明?A. int arr[5] = {0, 1, 2, 3, 4};B. int arr[] = {0, 1, 2, 3, 4};C. int arr[5] = {0, 1, 2};D. int arr[] = {0, 1, 2, 3};答案:B7. C语言中,以下哪个运算符用于执行按位与操作?A. &&B. ||C. &D. &&答案:C8. 下列关于函数的描述,正确的是:A. C语言中的函数可以没有返回值B. C语言中的函数可以返回多个值C. C语言中的函数可以重载D. C语言中的函数可以嵌套定义答案:A9. 在C语言中,以下哪个选项是正确的文件操作函数?A. fopenB. fcloseC. fgetcD. All of the above答案:D10. 下列关于C语言中循环的描述,错误的是:A. for循环可以嵌套使用B. while循环可以和do-while循环嵌套使用C. do-while循环至少执行一次D. break语句可以跳出循环体答案:B二、填空题(每题2分,共20分)1. 在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语言期末考试中,同学们可能会遇到各种类型的题目。
以下是一些典型的试题及其答案,供同学们复习参考。
1. 以下哪个选项是C语言中的关键字?A. intB. IntegerC. INTD. integer答案:A. int2. 若有定义:int a = 10; 则表达式 a++ 的值是多少?A. 9B. 10C. 11D. 无法确定答案:B. 103. 在C语言中,以下哪个函数用于计算字符串的长度?A. strlen()B. length()C. str_length()D. string_length()答案:A. strlen()4. 若有以下代码片段:```cint x = 5;printf("%d", x++);```执行后输出的结果是?A. 4B. 5C. 6D. 无法确定答案:B. 55. 在C语言中,以下哪个选项表示“逻辑与”操作?A. &&B. ||C. !D. &答案:A. &&6. 若有以下代码:```cint a = 3, b = 4, c;c = a + b;```则变量 c 的值是多少?A. 7B. 3C. 4D. 无法确定答案:A. 77. 在C语言中,以下哪个选项是正确的二维数组声明?A. int array[2,3];B. int array[2][3];C. int array[2][3][4];D. int array[][];答案:B. int array[2][3];8. 若有以下函数定义:```cint add(int x, int y) {return x + y;}```则调用 add(5, 3) 时,返回的值是多少?A. 2B. 5C. 8D. 无法确定答案:C. 89. 在C语言中,以下哪个选项表示“不等于”的比较运算符?A. ==B. !=C. =D. <=答案:B. !=10. 若有以下代码:```cchar str[] = "Hello";str[0] = 'h';```执行后,str 数组的内容是什么?A. "hello"B. "Hello"C. "helloworld"D. "hEllo"答案:A. "hello"这些题目覆盖了C语言的基础知识点,包括关键字、变量、函数、数组以及基本的控制结构。
大一c语言期末考试题及答案解析
大一c语言期末考试题及答案解析一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的关键字?A. intB. floatC. doubleD. all of the above答案:D2. C语言中,用于定义单精度浮点数的关键字是?A. intB. floatC. doubleD. char答案:B3. 下列哪个函数用于将浮点数转换为字符串?A. sprintfB. printfC. scanfD. strcat答案:A4. 在C语言中,哪个运算符用于计算两个数的和?A. +B. -C. *D. /答案:A5. 下列哪个选项不是C语言中的控制结构?A. ifB. forC. whileD. switch答案:D6. C语言中,用于定义字符数组的关键字是?A. charB. stringC. arrayD. vector答案:A7. 下列哪个函数用于输出格式化的字符串?A. printfB. scanfC. fprintfD. sprintf答案:A8. C语言中,用于定义整型变量的关键字是?A. intB. floatC. doubleD. char答案:A9. 下列哪个选项不是C语言中的运算符?A. %B. &&C. ||D. ==答案:D10. 在C语言中,用于定义布尔变量的关键字是?A. boolB. intC. charD. float答案:A二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量的正确语法是:___________。
答案:int variable_name;2. C语言中,用于输入一个整数的函数是:___________。
答案:scanf3. 如果要定义一个字符串常量,应该使用___________符号。
答案:"4. 在C语言中,使用___________关键字可以定义一个函数。
答案:void 或者其他返回类型5. C语言中,用于定义一个数组的语法是:___________。
(完整版)河海大学C语言期末试题A
专业班级:学号:姓名:一、选择题(用铅笔把选中的方格涂黑40×1=40分)1 2 3 45 6 7 89 10 11 1213 14 15 1617 18 19 2021 22 23 2425 26 27 2829 30 31 3233 34 35 3637 38 39 40二、填空题(25×2=50分)(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16)(17)(18)(19)(20)(21)(22)(23)(24)(25)三、编程题(10分)求10个数的最大公约数和最小公倍数(定义两个函数,求两个数的最大公约数和两个数的最小公倍数)一、选择题 ( 40×1分=40分)1.以下叙述中正确的是 (1)D 。
A .在编译时可以发现注释中的拼写错误B .C 语言程序的每一行只能写一条语句 C .main( ){}必须位于程序的开始D .C 语言程序可以由一个或多个函数组成2.以下选项中不能用作变量名的是 (2)B 。
A ._floatB .switchC .sumD ._123 3.已知sizeof(int)的值为2,为将10!的值存储到变量f 中(10!=3628800),变量f 的类型应声明为(3)A 。
A .long intB .intC .short intD .unsigned int4. 以下表示中,不能用作C 语言常量的是 (4)B 。
A. 0ULB. (long)123C. 1e0D.‘\x2a’ 5.数学式ba2在C 程序中正确的表示形式为 (5)B 。
A .sqrt(a)/2*b B .sqrt(a)/2/b C .sqrt(a)/2b D .sqrt a/(2*b)6.已知有程序段“char str[][10]={"Aoyun","Beijing"},*p=&str[0][0];printf("%s\n ",p+10);”,则执行printf 语句后输出为 (6) A 。
(完整版)大学C语言期末考试练习题(带详解答案)
一、单项选择题1.(A)是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从C开始执行。
A) 程序中第一条可执行语句B) 程序中第一个函数C) 程序中的main函数D) 包含文件中的第一个函数3、以下说法中正确的是(C)。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分4.下列关于C语言的说法错误的是(B)。
A) C程序的工作过程是编辑、编译、连接、运行B) C语言不区分大小写。
C) C程序的三种基本结构是顺序、选择、循环D) C程序从main函数开始执行5.下列正确的标识符是(C)。
A.-a1B.a[i]C.a2_iD.int t5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B)。
A)3ax B)x C)case D)-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。
A)%x B)a+b C)a123 D)123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。
大学c语言期末考试题库及答案
大学c语言期末考试题库及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于声明函数?A. intB. voidC. returnD. function答案:A2. 以下哪个选项是正确的C语言变量声明?A. int a = b = 2;B. int a = 2, b;C. int a = 2.0;D. int a = 2, b = 3.0;答案:B3. 在C语言中,以下哪个运算符用于逻辑“与”操作?A. &&B. ||C. !D. &答案:A4. 以下哪个选项是C语言中的合法数组声明?A. int array[5] = {1, 2, 3, 4, 5};B. int array[] = {1, 2, 3, 4, 5};C. int array[5] = {1, 2, 3};D. int array[5] = {1, 2, 3, 4, 5, 6};答案:B5. C语言中,以下哪个函数用于计算两个整数的和?A. max()B. pow()C. sqrt()D. sum()答案:D6. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A7. 以下哪个选项是C语言中的合法指针声明?A. int *ptr;B. int *ptr = 0;C. int *ptr = "hello";D. int *ptr = 5;答案:A8. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcat()B. strcpy()C. strcmp()D. strlen()答案:B9. C语言中,以下哪个关键字用于创建一个循环,直到满足某个条件?A. whileB. forC. do-whileD. switch答案:C10. 在C语言中,以下哪个函数用于动态内存分配?A. malloc()B. calloc()C. realloc()D. free()答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个宏。
c语言大一期末考试题库及详解答案
c语言大一期末考试题库及详解答案C语言大一期末考试题库及详解答案一、选择题1. 下列哪个选项是C语言中的合法标识符?A. 3aB. intC. _aD. float答案:C2. C语言中,哪个关键字用于定义一个函数?A. ifB. whileC. functionD. void答案:D3. 在C语言中,以下哪个语句可以用于输入数据?A. scanf()B. printf()C. coutD. cin答案:A二、填空题1. 在C语言中,______关键字用于声明一个变量的存储类型。
答案:static2. 一个C语言程序的执行从______函数开始。
答案:main3. 在C语言中,______运算符用于计算两个数的乘积。
答案:*三、简答题1. 简述C语言中数组的定义和初始化方式。
答案:在C语言中,数组是一种基本的数据结构,用于存储相同数据类型的多个元素。
数组的定义格式为:类型名数组名[常量表达式];其中类型名是数组元素的数据类型,数组名是数组的标识符,常量表达式是数组的元素个数。
数组的初始化可以使用花括号{}将初始值包围起来,例如:int arr[5] = {1, 2, 3, 4, 5}。
2. 描述C语言中的指针和引用的区别。
答案:C语言中的指针是一个变量,它存储了另一个变量的内存地址。
指针可以被重新赋值为其他地址,并且可以进行算术运算。
引用在C语言中不存在,但在C++中,引用是别名,它为另一个已存在的变量提供了另一个名字。
引用一旦被初始化后,不能被重新赋值为其他变量的引用,也不能进行算术运算。
四、编程题1. 编写一个C语言程序,实现输入两个整数,输出它们的和。
答案:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("它们的和是:%d\n", sum);return 0;}```2. 编写一个C语言程序,实现对一个字符串进行反转。
大一上学期c期末考试题及答案
大一上学期c期末考试题及答案大一上学期C语言期末考试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的关键字?A. intB. floatC. doubleD. all of the above答案:D2. C语言中,哪个函数用于计算两个数的最大值?A. max()B. min()C. abs()D. sqrt()答案:A3. 在C语言中,以下哪个选项是正确的字符串声明?A. char str[5] = "Hello";B. char str[5] = {'H', 'e', 'l', 'l', 'o'};C. char str[5] = "Hello"; // 错误,字符串长度超过数组大小D. char str[] = "Hello";答案:D4. 下列哪个选项不是C语言中的基本数据类型?A. intB. floatC. charD. string答案:D5. 在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, 4, 5;D. int arr = {1, 2, 3, 4, 5};答案:B6. 在C语言中,哪个运算符用于计算两个数的和?A. +B. -C. *D. /答案:A7. C语言中,哪个函数用于计算两个数的差?A. sum()B. difference()C. max()D. min()答案:B8. 在C语言中,以下哪个选项是正确的函数声明?A. int add(int a, int b);B. int add(int, int);C. int add();D. int add(a, b);答案:A9. C语言中,哪个关键字用于定义一个函数?A. functionB. defC. defineD. void答案:D10. 在C语言中,以下哪个选项是正确的循环结构?A. forB. whileC. do-whileD. all of the above答案:D二、填空题(每题2分,共20分)1. 在C语言中,用于定义一个整型变量的关键字是____。
大学大一C语言程序设计期末考试试卷和答案
大学大一C语言程序设计期末考试试卷和答案大学大一C语言程序设计期末考试试卷和答案C语言程序设计试卷试卷A答卷说明:1、本试卷共6页,答题纸3页,4个大题,35个小题,满分100分,120分钟完卷。
2、闭卷考试,所有的答案都必须写在答题纸上,判卷以答题纸上答案为准。
3、本试卷适用于2011级1、2、3班。
题号一二三四总分总分人分数得分评卷人一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
每小题1分,共20分)1、在C语言中,下列标识符中合法的是( )A). -int B). in1_3 C). A_B!D D). const2、不属于C语言基本数据类型的是( )A). int B). union C). char D). unsigned3、下面是对宏定义的描述。
不正确的是( )A). 宏不存在类型问题,宏名无类型,它的参数也无类型B). 宏替换不占用运行时间C). 宏替换只是字符串的简单替代D). 宏替换时先检查类型,类型一致时才可以替换4、C语言中,″\\xfds″在内存中占用的字节数是( )A).3 B).4 C).5 D).65、设int x;则执行printf(″%x\n″,~x^x);的结果是( )A). ffffffff B). ff C). 0 D). 16、对于while语句,错误的说法是( )A).用条件控制循环体的执行次数B).循环体至少要执行一次C).循环体有可能一次也不执行D).循环体中可以包含若干条语句7、执行下列语句后输出的结果是( ),8( ),19 D).10,20 ( )D). 0取变量地址D). enum t{a,b}x;A). p B). p(r) C). 3.14*r D). p(r) 3.14*r20、要打开一个已存在的用于修改的非空二进制文件“hello.txt ”,正确语句是( )A). fp=fopen( "hello.txt ","r" ) B). fp=fopen( "hello.txt ","ab+" ) C). fp=fopen( "hello.txt ","w" ) D). fp=fopen( "hello.txt ","r+" )得分评卷人二、填空题(仔细阅读每小题的说明和源代码,并将正确答案写到答题纸上对应的题号处。
大一c语言期末考试题库及答案
大一c语言期末考试题库及答案大一C语言期末考试题库及答案一、选择题1. C语言中,以下哪个关键字用于定义一个变量的存储类别?A. intB. charC. staticD. void答案:C2. 在C语言中,以下哪个运算符用于计算两个数的差?A. +B. -C. *D. /答案:B3. 如果一个变量被定义为int a; 那么它的初始值是什么?A. 0B. 1C. 不确定D. -1答案:C二、填空题1. 在C语言中,______是最基本的数据单位。
答案:变量2. 一个C程序总是从______函数开始执行的。
答案:main3. 在C语言中,______关键字用于定义一个函数。
答案:void 或者 int(取决于函数的返回类型)三、简答题1. 简述C语言中数组的定义和初始化方式。
答案:在C语言中,数组定义的一般形式为:类型名数组名[常量表达式],其中类型名是数组元素的数据类型,数组名是数组的标识符,常量表达式是数组中元素的个数。
数组的初始化是在定义数组的同时,给数组元素赋初值。
例如:```cint arr[5] = {1, 2, 3, 4, 5};```2. 描述C语言中指针的概念及其用途。
答案:指针是C语言中一种特殊的变量,它存储的是另一个变量的内存地址。
指针的主要用途包括动态内存分配、数组操作、函数参数的传递等。
指针的使用可以提高程序的灵活性和效率。
四、编程题1. 编写一个C语言程序,实现两个整数的加法,并输出结果。
```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数之和为:%d\n", sum);return 0;}```2. 编写一个C语言程序,实现字符串的复制功能。
大一上c语言期末考试题库及详解答案
大一上c语言期末考试题库及详解答案大一上C语言期末考试题库及详解答案一、选择题(每题2分,共20分)1. C语言中,以下哪个是合法的变量名?A. 2variableB. variable-nameC. variable_nameD. variable-name2答案:C2. 下列哪个选项是C语言中的关键字?A. defineB. ifC. caseD. switch答案:B3. 在C语言中,以下哪个语句是正确的?A. int a = 10;B. int a = "10";C. int a = 10.0;D. int a = 0x10;答案:A4. C语言中,以下哪个是正确的数组声明?A. int numbers[];B. int numbers[10] = {};C. int numbers = 10;D. int numbers[10] = {1, 2, 3};答案:B5. 下列哪个不是C语言的标准输入输出函数?A. printf()B. scanf()C. getchar()D. puts()答案:C二、填空题(每空2分,共20分)1. 在C语言中,一个整型变量int占用的字节数是______。
答案:4(或根据实际情况填写)2. 以下代码段的输出结果是______。
```cint main() {int a = 10;printf("%d", a);return 0;}```答案:103. 在C语言中,若要声明一个字符数组并初始化,可以使用______。
答案:char array[] = "Hello";4. 以下代码段的输出结果是______。
```cint main() {for (int i = 0; i < 5; i++) {printf("%d ", i);}return 0;}```答案:0 1 2 3 45. 在C语言中,若要实现字符串的复制,可以使用______函数。
C语言程序设计期末考试卷及答案
C 语言程序设计期末考试卷及答案一、单项选择题;从A 、B 、C 、D 四个选项中,选择一个最佳答案填入括号内 每小题1分,共计30分;1.一个C 语言程序的执行是从 ;A 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束B 本程序的main 函数开始,到main 函数结束C 本程序的main 函数开始,到本程序文件的最后一个函数结束D 本程序文件的第一个函数开始,到本程序的main 函数结束 2.下列选项中不属于...C 语言关键字的是 ;Aswitch Bprintf Cdefault Dcase3.设有语句 int a = 4; ,则执行了语句 a += a -= a a; 后,变量a 的值是 ; A24B -24C4D164.已知int i;float d;,则正确的表达式是 ; Aint d Bintd%i Cintd%i Dintd%i5.已知int i,a;,执行语句i=a=39,a/5,a+11; 后,变量i 的值是 ; A5B16C27 D386.下列选项中合法的字符型常量是 ; A"a"B'\n'C"\n" Da7.下面程序的运行结果是 ;include <stdio.h> void main { int k = 15;printf"k = %d,k = %o,k = %x\n",k,k,k; }Ak = 15,k = 15,k = 15 Bk = 15,k = 17,k = 17 Ck = 15,k = 017,k = 0xf Dk = 15,k = 17,k = f8.已知a,b,c 为int 类型,执行语句:scanf"%d%d%d",&a,&b,&c;使得a 为10,b 为20,c 为30,以下不正确...的输入形式是 ; A10 B10 C10,20,30 D10 20 20 20 30 30 309.已知int x=1,y=2,z=3;,执行下列程序段后,输出的结果是 ; ifx>y z=x;x=y;y=z; printf"%d,%d,%d",x,y,z; A1,2,3B2,3,3C2,3,1D2,3,210.若变量c 为char 类型,能正确判断出c 为大写字母的表达式是 ; A'A'<=c<='Z' B'A'<=c||c<='Z' CA<=c&&c<=Z D'A'<=c&&c<='Z'11.有以下程序段:int k=0;whilek=1 k++;while 循环执行的次数是 ;------------------------------------------第----------------------------2----------------------------装---------------------------------------线---------------------------------------------班级 姓名 学号------------------------------------------第----------------------------1----------------------------装---------------------------------------线--------------------------------------------A无限次B有语法错,不能执行C一次也不执行D执行1次12.以下程序的输出结果是;void main{int x=1,a=0,b=0;switchx{ case 0:b++;case 1:a++;case 2:a++;b++; }printf"a=%d,b=%d",a,b;}Aa=1,b=0 Ba=1,b=1 Ca=2,b=1 Da=2,b=2 13.若有定义int i = 1;,执行语句while i < 10 i++; 后,i的值为 ; A9 B10 C11 D1214.有说明语句int a ={1,2,3,4,5};,则数组a包括了个元素;A10 B5 C6 D不确定15.以下程序段执行后,输出结果是 ;char str="abc\n\012\\\n";printf"%d",strlenstr;A5 B6 C7 D1316.若有以下定义:float t54;,能正确引用t数组元素的表达式是 ;At14 Bt50 Ct00 Dt0,017.执行下列程序段:int i,s = 0;int a 3 = {{1,2},{3,4},{5,6}};for i = 0;i < 3;i++s = s + aii;则s的值是 ;A5 B6 C12 D2118.下述对字符数组的描述中,错误..的是 ;A字符数组可以存放字符串B字符数组中的字符串可以整体输入输出C可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值D不可以用关系运算符对字符数组中的字符串进行比较19.设有宏定义define Yx x+ 2 ,则下面程序段的运行结果是 ;int a = 2,b = 2,c = 1;printf"%d\n",a Y b + c ;A7 B8 C9 D1020.若用数组名作为函数调用的实参,传递给形参的是;A数组的长度B数组第一个元素的值C数组中全部元素的值D数组的首地址21.下面叙述中,不正确...的是 ;A在不同的函数中可以使用相同名字的变量B函数中的形式参数是局部变量C在一个函数内定义的变量只在本函数范围内有效D在一个函数内的复合语句中定义的变量在本函数范围内有效22.若在程序中定义了以下函数:float max float a ,float b{ return a>b a:b; }并将其放在主调函数之后,则在调用之前应该对该函数进行声明,以下选项中错误..的声明是 ;A float max float a,b ;B float max float ,float ;C float max float a ,float b ;D float max float x ,float y ;23.要使函数体内的某局部变量能保留函数前一次调用后的值,供下一次调用时继续使用,该变量的存储类型应是 ;A autoB externC staticD register24.类型相同的两个指针变量之间不能..进行的运算是 ;A+ B- C= D==25.若有说明语句:int i, x34 ;,则不能..将x11的值赋值给变量i的语句是 ;Ai = x + 1 + 1 ; Bi = x11;Ci = x + 1 ; Di = x1 + 1 ;26.有如下程序段:int a6 = { 1,2,3,4,5,6 };int m,ptr;ptr = &a0;m = ptr ptr + 2 ptr + 4 ;执行该程序段后,m的值为 ;A 15 B48 C24 D827.设有定义:enum team{ my,your=4,his,her = his+10};则枚举元素my、your、his、her的值分别是 ;A0 1 2 3 B0 4 0 10 C0 4 5 15 D1 4 5 1528.下面程序的运行结果是 ;union myun{ struct{ int x,y,z; }u;int k;}a;void main{ a.u.x = 4;a.u.y = 5;a.u.z = 6;a.k = 0;printf"%d\n",a.u.x;}A4 B0 C5 D629.表达式11 & 18的值是 ;A0 B1 C2 D27 30.当顺利执行了文件关闭操作后,fclose函数的返回值是 ;A 0 Btrue C -1 D 1二、填空题每小题2分,共计20分;1.C语言源程序编译后生成程序,然后经过连接生成可执行程序;2.实型常量有两种表示方法:小数形式和;3.rewind函数的功能是;4. 若ch是字符型变量,与ch=getchar;功能相同的语句是; 5.以下程序段要使指针变量p指向一个整型的动态存储单元,请填空;int p;p= mallocsizeofint;6.已知:int p,a = 2,b = 1;,则执行程序段p = &a;a = p + b; 后,a的值为; 7.已知:int x = 1, y = 2, z;,则执行z = x > y ++x : ++y;后,z的值为; 8.当执行下面程序且输入:ABC<回车>时,输出的结果是 ;include <stdio.h>void main{ char ss10 ="12345";getsss;printf“%s\n”,ss;}9.下面程序的功能是用函数的递归调用求nn≥1,请填空;float fint n{ if n==1 return1;else return ;}void main{ int n;scanf"%d",&n;printf"%.0f\n",fn;}10.以下程序执行后的输出结果是 ;void main{ int a = 3,b = 1,t;t = a << 2 | b;printf"%d\n",t ;}三、程序阅读题每小题4分,共计20分;1.以下程序执行后的输出结果是;include <stdio.h>void main{ int i;for i = 1;i <5;i++putchar‘’;}2. 以下程序执行后的输出结果是;void main{ int arr10={-1,2,3,4,-5,6,7,-8,9,0},i,k = 0;for i = 0;i <10;i ++ifarri<0 k++;printf"%d\n",k ;}3.以下程序执行后的输出结果是;void funint a10{int i,j,t;for i=0;i<9;i++for j=0;j<9-i;j++if aj>aj+1{t=aj;aj=aj+1;aj+1=t; }}void main{int i;int a10={4,3,5,1,0,8,2,6,7,9};funa;for i=0;i<10;i++printf"%3d",ai;printf"\n";}4.以下程序执行后的输出结果是;include <stdio.h>struct stu{ int x;int y;}p;int a2 = {10,20};struct stu aa2 = { 150,&a0,250,&a1};void main{ p = aa;printf"%d\n",++p-> x ; } 5.以下程序执行后的输出结果是;void swap int p1 ,int p2{ int k;k = p1;p1 = p2;p2 = k;}void main{ int a = 3,b = 6,x = &a,y = &b;swap x,y ;printf"%d,%d\n",x,y ;}四、程序改错题共2小题,每正确修改一处错误得2分,共计10分;注意:不得增行或删行,写出改正后的程序行,使之能够得出正确的结果;1.下列程序的功能是计算数列1,3,5,…,2n-1,…的前n项之和,其中n由键盘输入;void main{int s=0,n,i=1;scanf"%d",n; / 1该行有错误/do{ s=s+i;i=i+2; }while i>2n-1; / 2该行有错误/printf"s=%d\n",s;}2.下列给定的程序中,函数average的功能是:求10个数的平均值;include <stdio.h>float averagefloat array{ int i;float aver,sum; / 1该行有错误/for i=0;i<10;i++sum=arrayi; / 2该行有错误/ aver=sum/10;returnaver;}void main{ float data10,aver;int i;printf"Please input 10 data:\n";for i=0;i<10;i++scanf"%f",&datai;aver=averagedata0; / 3该行有错误/printf"averege data is %5.2f\n",aver;}五、程序设计题共3小题,第1小题6分,第2、3小题各7分,共20分;1.输入x,计算并输出下列分段函数y的值结果保留2位小数;2.在一个已排序的整型数组设从小到大中,插入一个整数,使之仍然有序要求数组中原有的10个整数从键盘按顺序输入;3.请先编写一个函数concatchar str1 ,char str2 ,实现两个字符串的连接注意不要用strcat函数;再编写一个main 函数进行测试:在主函数中输入两个字符串,然后调用concat函数,最后将连接后的字符串输出;参考答案一、单项选择题;从A、B、C、D四个选项中,选择一个最佳答案填入括号内每小题1分,共30分,错选、漏选、多选均不得分;⎪⎩⎪⎨⎧>-≤≤<=)15(5.105.2)150(34)0(xxxxxy二、填空题每小题2分,共20分,错填、漏填均不得分;三、程序阅读题每小题4分,共20分说明:对于程序阅读题,如果该题考生所给出的答案仅仅是书写格式上的错误,没有其它方面错误,扣1分,否则该题不得分;四、程序改错题共2小题,每正确修改一处错误得2分,共计10分; 注意:不得增行或删行,写出改正后的程序行,使之能够得出正确的结果;1. 1scanf"%d",&n;2while i<=2n-1; 2.1float aver,sum=0;2sum=sum+arrayi; 或者改为sum+=arrayi; 、sum=sum+array+i; 、sum+= array+i;sum=sum+array+i;也正确3aver=averagedata; 或者改为aver=average&data0; 也正确五、程序设计题共3小题,第1小题6分,第2、3小题各7分,共20分评分总则:若考生给出的程序语法正确,符合要求,能够实现具体功能,即可得满分;若程序存在错误,不能得出正确结果,阅卷教师酌情给分,给分方法参考下列评分标准; 1源程序代码include <stdio.h> main{float x,y; …… 1 分 printf"input x:";scanf"%f",&x; …… 2 分ifx<0 y=0;else if x<=15 y=4x/3;else y=2.5x-10.5; …… 2 分printf"y=%.2f\n",y; …… 1 分}2源程序代码include "stdio.h"main{int a11,i,b;printf"imput 10 sorted integer number:\n";for i=0;i<10;i++scanf"%d",&ai; …… 2 分printf"input an integer:\n";scanf"%d",&b; …… 1 分for i=9;i>=0&&ai>b;i--ai+1=ai; …… 2 分ai+1=b; …… 1 分printf"sorted numbers:\n";for i=0;i<11;i++printf"%5d",ai; …… 1 分}3源程序代码include <stdio.h>include <string.h>void concatchar str1,char str2 …… 1 分{int i,j;j=strlenstr1; …… 1 分for i=0; str2i='\0'; i++{str1j=str2i;j++;} …… 1 分 str1j='\0'; …… 1 分} main{ char str120,str220;printf"input two string:\n";getsstr1;getsstr2; …… 1 分 concatstr1,str2; …… 1 分 putsstr1; …… 1 分}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
专业班级:学号:姓名:一、选择题(用铅笔把选中的方格涂黑40×1=40分)1A B C D2A B C D3A B C D4A B C D 5A B C D6A B C D7A B C D8A B C D 9A B C D10A B C D11A B C D12A B C D 13A B C D14A B C D15A B C D16A B C D 17A B C D18A B C D19A B C D20A B C D 21A B C D22A B C D23A B C D24A B C D 25A B C D26A B C D27A B C D28A B C D 29A B C D30A B C D31A B C D32A B C D 33A B C D34A B C D35A B C D36A B C D 37A B C D38A B C D39A B C D40A B C D二、填空题(25×2=50分)(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16)(17)(18)(19)(20)(21)(22)(23)(24)(25)三、编程题(10分)求10个数的最大公约数和最小公倍数(定义两个函数,求两个数的最大公约数和两个数的最小公倍数)一、选择题 ( 40×1分=40分)1.以下叙述中正确的是 (1)D 。
A .在编译时可以发现注释中的拼写错误B .C 语言程序的每一行只能写一条语句C .main( ){}必须位于程序的开始D .C 语言程序可以由一个或多个函数组成2.以下选项中不能用作变量名的是 (2)B 。
A ._floatB .switchC .sumD ._123 3.已知sizeof(int)的值为2,为将10!的值存储到变量f 中(10!=3628800),变量f 的类型应声明为(3)A 。
A .long intB .intC .short intD .unsignedint4. 以下表示中,不能用作C 语言常量的是 (4)B 。
A. 0ULB. (long)123C. 1e0D.‘\x2a’5.数学式在C 程序中正确的表示形式为 (5)B 。
ba2A .sqrt(a)/2*b B .sqrt(a)/2/b C .sqrt(a)/2b D .sqrt a/(2*b) 6.已知有程序段“char str[][10]={"Aoyun","Beijing"},*p=&str[0][0];printf("%s\n",p+10);”,则执行printf 语句后输出为 (6) A 。
A .Beijing B .Aoyun C .ing D .ng 7.以下声明中错误的是 (7)C 。
A .int a[2];B .int a[]={0,1};C .int a[3]=0;D .int a[3][4]={0};8.以下表示数学式“a<b<c”的逻辑表达式中,错误的是 (8) A 。
A. a<b<cB. a<b&&b<cC. !(a>=b)&&!(b>=c)D. !(a>=b||b>=c)9.已有声明“int a=3,b=3,c=2;”,以下选项中值为0的表达式是 (9)A 。
A. !a&&!b&&c B. !a||!b||c C. a==b&&b>=c D. a>=b&&b>c 10.若有声明“char ss[8]="Red";”,则sizeof(ss)的值是 (10)A 。
A .8B .4C .3D .111. 以下程序运行后的输出结果是 (11)B 。
A. 2 2B. 7 2C. 7 5D. 6 2main(){ char a[7]="a0\0a0\0"; int i,j; i=sizeof(a); j=strlen(a); printf("%d %d",i,j); }12. 下面关于循环语句for 、while 、do_while 的叙述中,正确的是 (12)D 。
A.三种循环语句的循环体都必须放入一对花括号中B.三种循环语句中都可以缺省循环终止条件表达式C.三种循环语句的循环体都至少被无条件地执行一次D.三种循环语句都可能出现无穷循环13. 若有声明“int a[]={1,2,3,4},*p,i;”,则以下程序段中不能输出13的是(13)B。
A.for(i=0;i<4;i+=2) printf("%d",a[i]);B.for(p=0;p<4;p+=2) printf("%d",a[p]);C.for(p=a;p<a+4;p+=2) printf("%d",*p);D.for(p=a,i=0;i<4;i+=2) printf("%d",p[i]);14.在下列C语言源程序的错误中,通常不能在编译时发现的是(14)C。
A. 括号不匹配B. 非法标识符C. 数组元素下标值越界D. 程序结构不完整15.若有声明“long a,b;”且变量a和b都需要通过键盘输入获得初值,则下列语句中正确的是(15)D。
A. scanf("%ld%ld,&a,&b");B. scanf("%d%d",a,b);C. scanf("%d%d",&a,&b);D. scanf("%ld%ld",&a,&b);16.若有程序段“char c=256; int a=c;”,则执行该程序段后a的值是(16)C 。
A. 256B. 65536C. 0D. -117.若在一个C语言源程序中“e1”和“e3”是表达式,“s;”是语句,则下列选项中与语句“for(e1; ;e3)s;”功能等同的语句是(17)B。
A. e1;while(10)s;e3;B. e1;while(10){s;e3;}C. e1;while(10){e3;s;}D. while(10){e1;s;e3;}18.若有声明“int a[3][4], *p=a[0] ,(*q)[4]=a;”,则下列叙述中错误的是 (18) B。
A. a[2][3]与q[2][3]等价B. a[2][3]与p[2][3]等价C. a[2][3]与*(p+11)等价D. a[2][3]与p=p+11,*p等价19. 若有声明“long fun(int *x,int n,long *s);int a[4]={1,2,3,4}; long b,c;”,则以下函数调用形式中正确的是(19)D。
A. c=fun(a,4,b);B. c=fun(a[],4,&b);C. c=fun(a[4],4,b);D. c=fun(a,4,&b);20.已知在函数f中声明了局部变量x,如果希望f函数第一次被调用返回后变量x中存储的数据保持到下次f函数被调用时仍可以使用,则在声明x时必须指定其存储类型为(20)C。
A. autoB. registerC. staticD. extern21. 若有如下的类型定义和变量声明,则在给出的选项中值不为7的表达式是(21)A 。
A.ptr->aB.(++ptr)->aC.x[1].aD.x[0].b->astruct ss{ int a; struct ss *b; }x[3]={{5,&x[1]},{7,&x[2]},{9,0}}, *ptr=&x[0];22. 若需要对一个数据文件abc.txt中的数据做加密处理并且限定只能做一次打开文件操作,则在“fp=fopen("abc.txt", 模式字符串 ); ”中,模式字符串应当是(22) B 。
A. "w+"B. "r+"C. "a+"D. "r"23.若有如下声明和语句:int t[3][3],*pt[3],k;for(k=0;k<3;k++) pt[k]=&t[k][0];则表达式*(*(pt+1)+2)所引用的是 (23) C。
A. t[2][0] B. &t[2][0] C. t[1][2] D. &t[1][2] 24. 若有结构类型定义“typedef struct test{ int x,y[2]; }TEST;”,则以下声明中正确的是(24)A。
A.struct test x; B.struct x;C.test x ; D.struct TEST x;25. 设有声明int value=‘5’;则执行下列选项的赋值语句后,value的值不等于5的是(25)C。
A. value=value-‘0’;B. value=value-0x30;C. value=value-49;D. value=value-‘\060’;26.若有枚举类型定义“enum list1{x1,x2,x3,x4=6,x5,x6};”,则枚举常量x2和x6代表的值分别是(26)B。
A. 1,6B. 1,8C. 2,6D. 2,8 27.设有声明float a=1.23456; int i;,欲将a中的数值保留小数点后两位,第三位进行四舍五入运算,能实现该功能的表达式是(27)A 。
A. i=a*100+0.5,a=i/100.0B. a=(a*100+0.5)/100.0C. a=((int)a*100+0.5)/100.0D. a=(a/100+0.5)/100.028.若有声明“int x[10]={0,1,2,3,4,5,6,7,8,9},*p;”,则值不为4的表达式是(28)C 。
A.p=x,*(p+4) B.p=x+4,*p++C.p=x+3,*(p++) D.p=x+3,*++p29.若有声明“int i,k=1; unsigned j;”,则下列语句执行时会出现无限循环的语句是(29) A。
A.for(j=15;j>0;j-=2) k++; B.for(j=0;j<15;j+=2) k++;C.for(i=0;i<15;i+=2) k++; D.for(i=15;i>0;i-=2) k++;30.已知A盘根目录下有文本文件“data.txt”且程序中已有声明“FILE *fp;”,若程序需要先从“data.txt”文件中读出数据,修改后再写入“data.txt”文件中,则调用fopen函数的正确形式是 (30) C。