C语言期末试题2011年C
- 格式:doc
- 大小:60.50 KB
- 文档页数:7
?窗体顶端11. 计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是()A) C语言程序仅可以编译执行 B) C语言程序仅可以解释执行C) C语言程序既可以编译执行又可以解释执行D) 以上说法都不对A B C D 未答题该题得分:正确答A案:全国计算机等级考试二级C语言真题2011年04月-33次试题来源:【解析】:编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe 文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe 文件),因为编译只做了一次,运行时不需要编译,所以编译型的程序执行效率高。
解释则不同,解释型语言的程序不需要编译,省了1道工序,解释性语言在运行程序的时候才翻译,比如解释型basic 语言,专门有一个解释器能够直接执行basic 程序,每个语言都是执行的时候才编译。
这样解释性语言每执行一次就要编译一次,效率比较低。
故答案为A 。
12. 以下叙述中错误的是( )A) C 语言的可执行程序是由一系列机器指令构成的B) 用C 语言编写的源程序不能直接在计算机上运行 C) 通过编译得到的二进制目标程序需要连接才可以运行D) 在没有安装C 语言集成开发环境的机器上不能运行C 源程序生成的.exe 文件 A BCD未答题该题得分: 0 正确答案:D 试题来源:全国计算机等级考试二级C 语言真题2011年04月-33次 【解析】: C 语言的可执行程序是由一系列机器指令组成的,用C 编写的源程序必须经过编译生成二进制目标代码,再经过链接才能运行,并且可以脱离C 语言集成开发环境,故答案选D13. 以下选项中不能用作C程序合法常量的是()A) 1234 B) '123' C) 123 D) "\x7G"A B C D 未答题该题得分:0正确答案:B试题来源:全国计算机等级考试二级C语言真题2011年04月-33次【解析】:常量分为数值常量和字符串常量14. 以下选项中可用作C 程序合法实数的是( ) A) .1e0 B) 3.0e0.2 C) E9 D) 9.12EA BCD未答题该题得分: 0 正确答案:A 试题来源:全国计算机等级考试二级C 语言真题2011年04月-33次 【解析】: 浮点型常量有十进制小数形式和指数形式。
江苏科技大学2011C++期末试卷(附答案)使用前注意保密江苏科技大学非计算机专业学生Visual C++ 程序设计语言期末考试试卷代号:VC02说明:1、本试卷为笔试题,含选择、填空、及编程三部分。
2、本试卷满分为100分,考试时间为120分钟。
3、所有答案必须写在答题纸上,否则不计成绩。
3、填空题,请注意空格号(不是题号)与答题纸上的编号对应。
4、答题纸上必须写明学号(含班级号)、姓名。
计算机基础教研室一、选择题(10×2=20分)1、设CH为字符型变量,则语句CH=CH+’e’-‘E’;的作用可能是:(1)。
A.将大写字母转换成对应的小写字母B.将字母CH转换成eC.将小写字母转换成对应的大写字母D.将字母CH转换成E2、设有说明语句“int a=4,b=5,c=6,d=7,m=1,n=1;”,则执行语句“c=(m=a>b)&&(n=c>d);”后,m和n的值分别为(2)。
A.1、1 B.1、0 C.0、1 D.0、03、下列数组的定义和使用中,正确的是(3)。
A.char a[20];a[20]=”Hello”;B.char a[20];a=”Hello”;C.int n=20;char a[n];D.char a[]=”Hello”;4、设类A为类B的基类,类B为类C的基类,并有如下定义:Aa1,*pa;B b1,*pb;C c1,*pc;则以赋值存在语法错误的是(4)。
A.pa=&b1 B.pb=&c1 C.A a2=&c1 D.pc=&b1;5、设有变量说明“int a=1,b=2;float x=1.5,y=1.2;”,下列语句正确的是(5)。
A.y=x%a; B.int(y)=a; C.x+y=a+b; D.a=x+y;6、对于下面的一组函数:void fun (int a, float x); // 函数1void fun (int a, int x); // 函数2void fun (float a, float x ); // 函数3void fun (float a, int x ); // 函数4void fun (int a[], int n); // 函数5void fun (int *p, int n); // 函数6以下说法不正确的是:(6)。
2011年计算机二级C语言编写程序题及答案解析精选【4.1】已知银行整存整取存款不同期限的月息利率分别为:0.315%期限一年0.330%期限二年月息利率=0.345%期限三年0.375%期限五年0.420%期限八年要求输入存钱的本金和期限,求到期时能从银行得到的利息与本金的合计。
【4.2】输入年份year和月month,求该月有多少天。
判断是否为闰年,可用如下C语言表达式:year%4==0&&year0!=0||year@0==0。
若表达式成立(即表达式值为1),则year 为闰年;否则,表达式不成立(即值为0),year为平年。
【4.3】编写一个简单计算器程序,输入格式为:data1op data2。
其中data1和data2是参加运算的两个数,op为运算符,它的取值只能是+、-、*、/。
【4.4】输入n值,输出如图所示矩形。
【4.5】输入n值,输出如图所示平行四边形。
【4.6】输入n值,输出如图所示高为n的等腰三角形。
【4.7】输入n值,输出如图所示高为n的等腰三角形。
【4.8】输入n值,输出如图所示高和上底均为n的等腰梯形。
【4.9】输入n值,输出如图所示高和上底均为n的等腰空心梯形。
【4.10】输入n值,输出如图所示边长为n的空心正六边型。
【4.11】输入n值,输出如图所示图形。
【4.12】输入n值,输出如图所示图形。
【4.13】输入n值,输出如图所示图形。
【4.14】输入n值,输出如图所示图形。
【4.15】输入n值,输出如图所示图形。
【4.16】输入n值,输出如图所示图形。
(例为n=6时)【4.17】编写程序,输出如图所示sin(x)函数0到2π的图形。
【4.18】编写程序,在屏幕上输出一个由*号围成的空心圆。
【4.19】编写程序,在屏幕上绘制如图余弦曲线和直线。
若屏幕的横向为x轴,纵向为y 轴,在屏幕上显示0~360度的cos(x)曲线与直线x=f(y)=45*(y-1)+31的迭加图形。
C语言期末考试试题及答案免费下载最新2011年一、单项选择题1.(D)是合法的用户自定义标识符。
A、 b-bB、floatC、<fr>D、 _isw2.若变量已正确定义并赋值,表达式(B)不符合C语言语法。
A、a*b/c;B、3.14%2C、2, bD、a/b/c3.(C)是不正确的字符常量。
A、'n'B、'1'C、"a"D、'101'4.在 C 程序中,用(B)表示逻辑值“真”。
A、1B、非 0 的数C、非 1 的数D、大于 0 的数5.(C)把x、y定义成float类型变量,并赋同一初值3.14。
A、float x, y=3.14;B、float x, y=2*3.14;C、float x=3.14, y=x=3.14;D、float x=y=3.14;6.若变量已正确定义,表达式(C)的值不是2。
A、2&3B、1<<1C、a==2D、1^37.若变量已正确定义,语句“if(a>b) k=0; else k=1;”和(C)等价。
A、k=(a>b)?1:0;B、k=a>b;C、k=a<=b;D、a<=b ? 0 : 1;8.设变量定义为“int a, b;”,执行下列语句时,输入(D),则a和b的值都是10。
scanf("a=%d, b=%d",&a, &b);A、10 10B、10, 10C、a=10 b=10D、a=10, b=109.下列程序的输出结果是(D)。
fun(int a, int b, int c){ c =a*b; }void main( ){ int c;fun(2,3,c);printf(”%dn”,c);}A、0B、1C、6D、无法确定10.在C程序中,若对函数类型未加说明,则函数的隐含类型为(A)。
A、intB、doubleC、voidD、char11.表达式strlen(”hello”) 的值是(B)。
倾情奉献---马杰C 语言 考试题,满分为100分。
本试卷为卷面笔试部分,卷面满分为90分。
一、填空题(10分,第1小题4分,其余每空1分) 1.设有下列登记表,请采用最佳方式定义一种数据类型来表示这些数据的集合。
其中,配偶姓名用spouseName 表示,子女人数用children 表示。
注意行为规范,遵守考试纪律! 姓名name 性别 sex 职业 profession 婚姻状况marital 未婚 年龄 single Age 已婚married 离婚日期 divorcedDay 配偶 姓名 子女 人数 年 year 月 month 日 date 婚姻状况标记 marry Flag marital2.C语言中构造数据类型包括、、。
3.C语言中用_______表示逻辑值“假”,用________表示逻辑值“真”。
4.char *p[10];这条语句的含义是:__ ___ _ _ 。
二、判断下列问题描述正确与否,正确的打“√”,错误的打“×”。
(4分,每题1分)1.如果在程序中定义静态变量和全局变量时,未明确指明其初始值,那么它们可以在程序编译阶段自动被初始化为0值。
()2.在C语言中,可以用typedef定义一种新的数据类型。
()3.在C语言中,实参与其对应的形参各占独立的存储单元。
()4. 在C语言中,函数的定义可以嵌套。
()三、选择题:(10分,每题2分)1.若用数组名作为函数调用时的实参,则实际上传递给形参的是()。
A.数组的首地址 B. 数组的第一个元素值C.数组中全部元素的值 D. 数组元素的个数2.判断两个字符串s1和s2相等,应当使用( )。
A. if (s1 == s2)B. if (s1 = s2)C. if (!strcmp(s1,s2))D. if (strcmp(s1,s2))3.在while(x)语句中的x与下面条件表达式等价的是:。
A. x!=0B. x==1C. x!=1D. x==04.二维数组a有m行n列,则在a[i][j]之前的元素个数为()。
第一部分【程序填空】第一套:题目:函数gcd()计算整型数组a中相邻两元素的最大公约数,最小公倍数,其中最大公约数存入数组b中,最小公倍数存入数组c中。
---------------------------------------------------------注意:请勿改动主函数main()中的其他内容。
---------------------------------------------------------#include <stdio.h>#include <conio.h>void gcd(int a[],int n,int b[],int c[]){int i,x,y,z;/***********SPACE***********/for(i=0;i<【?】;i++){x=a[i];y=a[i+1];while(z=x%y){x=y;y=z;}b[i]=y;/***********SPACE***********/c[i]=a[i]*a[i+1]/【?】;}}int main(){int a[5]={8,12,5,7,14};int b[4],c[4];int i;gcd(a,5,b,c);for(i=0;i<5;i++)printf("%d\t",a[i]);printf("\n");for(i=0;i<4;i++)printf("%d\t",b[i]);printf("\n");for(i=0;i<4;i++)printf("%d\t",c[i]);printf("\n");getch();return 0;}第二套题目:函数reverse()对字符串str进行逆序。
#include<stdio.h>#include<string.h>#include<conio.h>void reverse(char str[]){int len, j;char c;/***********SPACE***********/len = 【?】(str);/***********SPACE***********/for (j=len-1; 【?】; j--){c=str[j];str[j]=str[len-1-j];str[len-1-j]=c;}}int main(){char a[80];printf("Please enter a string: ");gets(a);reverse(a);printf("The inversed string is: ");puts(a);getch();return 0;}第三套题目:对主函数main()中数组a进行处理:如果相邻元素相同则保留一个。
云南师范大学《C语言》期末考试样卷及答案云南师范大学2011-2012学年下学期统一考试《计算机技术基础》(C语言)期末考试样卷考试方式(闭卷机考)考试时量:100分钟试卷编号(样卷)一、判断题:(每题1分,共15分)1.在C程序中,注释内容在编译时被忽略,因此好的C程序不需要注释。
BA.对B.错2.#define是一种特殊的C语句,在行末没有分号。
BA.对B.错3.C语言中表达式3%2是合法的表达式。
AA.对B.错4.在C程序中,赋值语句x=123和x=0123后,变量x的值是不同的。
AA.对B.错5.2&&3的结果为1。
AA.对B.错6.C程序总是从程序的第一条语句开始顺序执行。
BA.对B.错7.C语言中,函数的定义可以嵌套。
BA.对B.错8.结构体中的成员变量可以有不同的数据类型。
AA.对B.错9.出现在主调函数之前的用户自定义函数,可以不必加函数声明。
AA.对B.错10.C语言中用for循环语句实现的功能,用while循环语句不一定能实现。
BA.对B.错11.有如下说明:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为5的表达式是*(P+4)。
AA.对B.错12.字符串和字符数组都要求其最后一个字符为’\0’。
BA.对B.错13.合理使用共用体可以节省内存空间。
AA.对B.错14.函数是C程序的基本单位。
AA.对B.错15.全局变量在程序中的任何地方都有效。
BA.对B.错二、单选题(在本题的每一小题的被选答案中只有一个正确答案,多选不给分,每题1分,共40分)1、下面叙述错误的是____。
DA.C程序中,各种括号应成对出现B.C程序中,赋值号的左边不可以是表达式C.C程序中,变量名的大小写是有区别的D.C程序中,若未给变量赋初值,则变量的初值自动为02.有宏定义:#define E 2.718则编译预处理时将E替换成一个____。
DA.单精度常量B.单精度变量C.双精度变量D.字符串3、C程序中,合法的关键字是____。
一、单项选择题【1.1】以下不正确的C语言标识符是____。
A) int B) a_1_2 C) ab1exe D) _x【1.2】以下是正确的C语言标识符是____。
A) #define B) _123 C) %d D) \n【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。
••• A) print B) i\am C) Pxq D) str_l ••• _3d one_half My->book Cpp ••• oodbs tart$it line# pow ••• aBc 3pai His.age while【1.4】下面各选项组中,均是C语言关键字的组是。
A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type【1.5】下列不属于C语言关键字的是。
A) default B) register C) enum D) external【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。
A) 程序文件的开始B) 程序文件的最后C) 它所调用的函数的前面D) 程序文件的任何位置【1.7】下列关于C语言的叙述错误的是____A) 大写字母和小写字母的意义相同B) 不同类型的变量可以在一个表达式中C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D) 同一个运算符号在不同的场合可以有不同的含义【1.8】在C语言中,错误的int类型的常数是。
A) 32768 B) 0 C) 037 D) 0xAF【1.9】执行语句printf("%x",-1);屏幕显示____。
A) -1 B) 1 C) -ffff D) ffff【1.10】已知long i=32768;执行语句printf("%d",i);屏幕显示____。
2011年3月電腦等級考試二級C語言筆試一、選擇題(1)下列關於棧敘述正確的是A)棧頂元素最先能被刪除B)棧頂元素最後才能被刪除C)棧底元素永遠不能被刪除D)以上三種說法都不對(2)下列敘述中正確的是A)有一個以上根結點的數據結構不一定是非線性結構B)只有一個根結點的數據結構不一定是線性結構C)迴圈鏈表是非線性結構D)雙向鏈表是非線性結構(3)某二叉樹共有7個結點,其中葉子結點只有1個,則該二叉樹的深度為(假設根結點在第1層)A)3 B)4 C)6 D)7(4)在軟體開發中,需求分析階段產生的主要文檔是A)軟體集成測試計畫B)軟體詳細設計說明書C)用戶手冊D)軟體需求規格說明書(5)結構化程式所要求的基本結構不包括A)順序結構B)GOTO跳轉C)選擇(分支)結構D)重複(迴圈)結構(6)下麵描述中錯誤的是A)系統總體結構圖支持軟體系統的詳細設計B)軟體設計是將軟體需求轉換為軟體表示的過程C)數據結構與資料庫設計是軟體設計的任務之一D)PAD圖是軟體詳細設計的表示工具(7)負責資料庫中查詢操作的資料庫語言是A)數據定義語言B)數據管理語言C)數據操縱語言D)數據控制語言(8)一個教師可講授多門課程,一門課程可由多個教師講授。
則實體教師和課程間的聯繫是A)1:1聯繫B)1:m聯繫C)m:1聯繫D)m:n聯繫(9)有三個關係R、S和T如下:RA B C a 1 2B 2 1C 3 1SA BC 3TC1則由關係R和S得到關係T的操作是A)自然連接B)交C)除D)並(10)定義無符號整數類為UInt,下麵可以作為類UInt實例化值的是A)-369 B)369 C)0.369 D)整數集合{1,2,3,4,5}(11)電腦高級語言程式的運行方法有編譯執行和解釋執行兩種,以下敘述中正確的是A)C語言程式僅可以編譯執行B)C語言程式僅可以解釋執行C)C語言程式既可以編譯執行又可以解釋執行D)以上說法都不對(12)以下敘述中錯誤的是A)C語言的可執行程式是由一系列機器指令構成的B)用C語言編寫的根源程式不能直接在電腦上運行C)通過編譯得到的二進位目標程式需要連接才可以運行D)在沒有安裝C語言集成開發環境的機器上不能運行C根源程式生成的.exe檔(13)以下選項中不能用作C程式合法常量的是A)1,234 B)'123'C)123 D)"\x7G"(14)以下選項中可用作C程式合法實數的是A).1e0 B)3.0e0.2C)E9 D)9.12E(15)若有定義語句:int a=3,b=2,c=1;,以下選項中錯誤的賦值運算式是A)a=(b=4)=3; B)a=b=c+1;C)a=(b=4)+c; D)a=1+(b=c=4);(16)有以下程式段char name[20];int num;scanf("name=%s num=%d",name;&num);當執行上述程式段,並從鍵盤輸入:name=Lili num=1001<回車>後,name的值為A)LiliB)name=LiliC)Lili num=D)name=Lili num=1001(17)if語句的基本形式是:if(運算式)語句,以下關於“運算式”值的敘述中正確的是A)必須是邏輯值B)必須是整數值C)必須是正數D)可以是任意合法的數值(18)有以下程式#includemain(){ int x=011;printf("%d\n",++x);}程式運行後的輸出結果是A)12 B)11 C)10 D)9(19)有以下程式#includemain(){ int s;scanf("%d",&s);while(s>0){ switch(s){ case1:printf("%d",s+5);case2:printf("%d",s+4); break;case3:printf("%d",s+3);default:printf("%d",s+1);break;}scanf("%d",&s);}}運行時,若輸入1 2 3 4 5 0<回車>,則輸出結果是A)6566456 B)66656 C)66666 D)6666656(20)有以下程式段int i,n;for(i=0;i<8;i++){ n=rand()%5;switch (n){ case 1:case 3:printf("%d\n",n); break;case 2:case 4:printf("%d\n",n); continue;case 0:exit(0);}printf("%d\n",n);}以下關於程式段執行情況的敘述,正確的是A)for迴圈語句固定執行8次B)當產生的亂數n為4時結束迴圈操作C)當產生的亂數n為1和2時不做任何操作D)當產生的亂數n為0時結束程式運行(21)有以下程式#includemain(){ char s[]="012xy\08s34f4w2";int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>='0'&&s[i]<='9') n++;printf("%d\n",n);}程式運行後的輸出結果是A)0 B)3 C)7 D)8(22)若i和k都是int類型變數,有以下for語句for(i=0,k=-1;k=1;k++) printf("*****\n");下麵關於語句執行情況的敘述中正確的是A)循環體執行兩次B)循環體執行一次C)循環體一次也不執行D)構成無限迴圈(23)有以下程式#includemain(){ char b,c; int i;b='a'; c='A';for(i=0;i<6;i++){ if(i%2) putchar(i+b);else putchar(i+c);} printf("\n");}程式運行後的輸出結果是A)ABCDEF B)AbCdEf C)aBcDeF D)abcdef(24)設有定義:double x[10],*p=x;,以下能給數組x下標為6的元素讀入數據的正確語句是A)scanf("%f",&x[6]); B)scanf("%lf",*(x+6));C)scanf("%lf",p+6); D)scanf("%lf",p[6]);(25)有以下程式(說明:字母A的ASCII碼值是65)#includevoid fun(char *s){ while(*s){ if(*s%2) printf("%c",*s);s++;}。
第 1 页 共 4 页
西 安 科 技 大 学2011—2012学 年 第 2学 期 期 末(中)考 试 试 题(卷)
院系: 班级: 姓名: 学号:
装 订 线 装 订 线 以 内 不 准 作 任 何 标 记 装 订 线
第 2 页 共 4 页
西 安 科 技 大 学20 —20 学 年 第 学 期 期 末(中)考 试 试 题(卷)
院系: 班级: 姓名: 学号:
装 订 线 装 订 线 以 内 不 准 作 任 何 标 记 装 订 线
西 安 科 技 大 学20 —20 学 年 第 学 期 期 末(中)考 试 试 题(卷)
院系: 班级: 姓名: 学号:
装 订 线 装 订 线 以 内 不 准 作 任 何 标 记 装 订 线
第 4 页 共 4 页
西 安 科 技 大 学20 —20 学 年 第 学 期 期 末(中)考 试 试 题(卷)
院系: 班级: 姓名: 学号:
装 订 线 装 订 线 以 内 不 准 作 任 何 标 记 装 订 线
第5 页共4 页。
北京师范大学2010~2011学年第 2 学期期末考试试卷(A卷)课程名称:程序设计语言(C语言)任课教师姓名:于福生刘玉铭卷面总分: 100 分考试时长: 100 分钟考试类别:闭卷院(系):专业:年级:姓名:学号:阅卷教师(签字):一、单项选择题(20×2=40分)(1)能够作为标识符的一组字符序列是【 B 】A)int define WORDB)a_b3 _123 IF C)For -abc CaseD)2a Do A&B(2)能正确表示逻辑关系“a ≥ 10或a ≤ 0”的C语言表达式是【D 】A) a >= 10 or a <= 0B) a >= 10 | a <= 0 C) a >= 10 && a <= 0D) a >= 10‖a <= 0(3)已知int num=7, sum=7;则表达式sum=num++, sum++,++num;求值后变量sum的值是【 B 】A)7B)8 C)9D)10(4)对于程序段int n=0, p;do{scanf("%d", &p);n++;}while( p!=12345 && n<3);其中 do-while 循环的结束条件是【 D 】A)p的值不等于12345 并且n的值小于3B)p的值等于12345 并且n的值大于等3 C)p的值不等于12345 或 n的值小于3D)p的值等于12345或n的值大于等于3(5)下面定义不正确的是【 A 】A)char a[3]="yes";B)char *a="yes"; C)char a[3]={ 'y', 'e', 's' };D)char a[]=”yes”;(6)如果有说明:int n=2, *p=&n, *q=p;则以下非法的赋值语句是【 D 】A)p = q;B)*p = *q; C)n = *q;D)p = n;(7)二维数组float s[3][4]中元素s[2][3]的正确表示是【 A 】A)*(*(s+2) +3)B)*(s+2) +3 C)s[2,3]D)s[3][2](8)设有struct aa{int a; float x;}s[10],则不能将s写入二进制文件f的语句是【 A 】A)fwrite(&s,10,6,f);B)fwrite(s,60,1,f); C)fwrite(s,10,6,f);D)fwrite(s,1,60,f);(9)设FILE *f;且f指向一个新打开的文本文件,则执行语句fprintf(f,”%d”, 12345);后f 所指向的文件在大小上增加的字节数是【 C 】A)2;B)4; C)5;D)10;(10)函数 int fun(int *p) { return *p; } 的返回值是【 C 】A)不确定的值B)形参p中存放的值C)形参p所指向的存储单元中的值D)形参p的地址值(11)与语句 k = a > b ? (b > c ? 1 : 0 ) : 0; 功能等价的程序段是【 A 】A)if(a>b&&b>c) k=1; else k=0;B)if (a>b||b>c) k=1; C)if (a<=b) k=0;else if(b<=c) k=1;else k=0;D)if(a>b) k=1;else if(b>c) k=1;(12)设有说明:struct AA{ char a, *b, c[10] } s;调用函数scanf的正确的实在参数为【 C 】A)( "%c%c%s", &s.a, &s.b, &s.c )B)( "%c%c%s", s.a, s.b, s.c ) C)( "%c%c%s", &s.a, s.b, s.c )D)( "%c%c%c", &s.a, s.b, s.c[1] )(13)设有char c; 则以下声明不正确的是【 B 】A)char *s=&c;B)char *s=‟a‟;C)char *s=”abc”;D)char *s=”A”;(14)定义int *p[4]中p的含义是【 B 】A)指向整型变量的指针B)指针数组名C)指向含4个分量的数组的指针D)定义不合法(15)设有说明:char *lag[]={"Fortran","Basic","Pascal","Java","C"};则表达式: strcmp(++lag[1],++lag[3])比较的是【 A 】A)字符串asic和字符串avaB)字符串Basic和字符串Java C)字符B和字符JD)字符串Fortran和字符串Pascal(16)设有说明:int a=1,b=2,k;对表达式k=a++==3/2||(b-=a--&&3%2)求值后变量a,b的值分别是【 C 】A)1,2B)1,1 C)2,2D)2,1(17)设有说明:int a[3]={1,2}, 则sizeof(a)的值是【 D 】A) 2B) 3 C) 4D) 6(18)设有函数:void sub(int k){if(k%10!=k*k%10) sub(k-1); printf(“%d,” k);}则调用sub(19)的执行结果为【A 】A)16,17,18,19,B)16,C)19,18,17,16,D)18,17,16,(19)程序段:char c=‟a‟, s[10]=”a1b2c3d4”,*p=s; switch(c) {default: putchar(*p++); case …c‟: putchar(*p++); case …d‟:putchar(*++p); };则执行结果为是【C 】A) aB) 1 C)a12D)a1b(20)以下叙述正确的是【 B 】A)C语言在对逻辑表达式求值时执行其中的每个运算;B)C语言函数中的变量可以在诞生后一直存在;C)C语言的函数可以相互调用;D)C语言中,else总是与离它最近的if进行配对;二、阅读程序、写出程序的执行结果(5×6=30分)(1) # include <stdio.h>long fib(int g){switch(g) {case 0: return 0;case 1:case 2: return 1;}return(fib(g - 1) + fib(g - 2));}void main(){long k;k = fib(6);printf("k=%d", k);}该程序输出结果是:【k=8 】(2) # include <stdio.h>int fun(int n){int m = 0, f = 1, i;for(i = 1; i <= n; i++){m += i * f;f = (-1)*f;}return m;}void main( ){printf("%d", f(10));}该程序输出结果是:【-5 】(3) # include <stdio.h>void main(){int i=0,j=0 s=0;while(++i<3)while(++j<8){if(j%2) continue;s+=j;if(s>8) {j=0; break;}}printf(“%d”,s);}该程序输出结果是:【14 】(4) # include <stdio.h>int f(int a) ;void main( ){int s[] = {1, 2, 5, 6, 3, 7, 4, 8}, i, d = 0;for (i = 0; f(s[i]); i++) d += s[i];printf("%d", d);}int f(int a){return a%3;}该程序输出结果是:【8 】(5) # include <stdio.h>void main(){int a[3][3]={{1,2,3},{4,5,6},{7,9,8}};int i, j, s=0;for(i=0; i<3; i++)for(j=0; j<3; j++)if(i != 2-j) s=s+a[i][j];printf("s=%d",s);}该程序输出结果是:【s=30 】三、 编程题(任选两题2×15=30分)1. 编程计算:141241....71613121---++-+-=n n s ,直到最后一项的绝对值小于某个给定的充分小的正数m 。
━ ━ ━ ━ ━ ━ ━ ━ ━ 装 ━ ━ ━ ━ ━ ━ ━ ━ ━ 订 ━ ━ ━ ━ ━ ━ ━ ━ ━ 线 ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━防灾科技学院2010~ 2011学年 第二学期期末考试C 语言程序设计 试卷(A 卷) 使用班级 /112/113/121/122/131/132/141/142/211/212/213/311/312/313/531 答题时间 120分钟一、选择题(共15小题,每题2分,共30分。
请将答案写在答题纸上)1.以下叙述不正确的是( )。
A.一个C 语言源程序可以由一个或多个函数组成B.一个C 语言源程序必须包含一个main 函数C.C 语言源程序的基本组成单位是函数D.在C 语言源程序中,注释说明只能位于一条语句的后面 2.在程序设计中,流程图画法中的菱形表示( )。
A. 起止框B. 输入输出框C. 判断框D. 处理框 3.下列标识符中,( )是合法的用户标识符。
A. A#C B. getch1C.structD. stu*14.以下能正确定义且赋初值的语句是( )。
A.int n1=n2=10;B.char c=32;C.float f=f+1.1;D.double x=12.3E2.5; 5.以下运算符中不是关系运算符的是( )。
A.<B.>=C.!D.!= 6. 表达式(int)2.1416的值是( )。
A. 2B. 2.1C. 0D. 3 7.有关下述语句输出的判断中,正确的是( )。
char x='A'; printf("%d", x);A.赋值非法B.输出值不确定C.输出值为-32D.输出值为65 8.对if 语句中表达式的类型,下面正确的描述是( )。
A.必须是关系表达式或逻辑表达式B.必须是关系表达式或算术表达式C.可以是任意表达式D.必须是关系表达式 9.以下正确的描述是( )。
2011~2012学年第二学期C语言期末考试卷答案(A卷)专业班级:学号:姓名:一、选择题(用铅笔把选中的方格涂黑20×1=20分)1 2 3 45 6 7 89 10 11 1213 14 15 1617 18 19 2021 22 23 2425 26 27 2829 30二、填空题(25×2=50分)1. a-b==b-c2. 1<=x<log(10)3. 14. continue5. 56. 87. 108. 13 11 129. 8 10. 2 2 111. 1 0 0 12. 1 2 013. 3 5 8 14. f(a)*f(b)>015. (a+b) /2 16. f(x)*f(a)或y*f(a)17. cos 18. n%i==0或!(n%i)19. a[k++]=i 20. 021. prime(j) 22. NODE23. p2 24. p2->next25. head三、编程题(10×2=20分)1.编写函数int frinum(long s[][2],long n)实现以下功能:找到2 n范围内的所有亲密数对,将这些亲密数对保存到s指向的二维数组中。
函数返回s数组中存储的亲密数对的对数。
编写函数main实现以下功能:求3000以内的亲密数对并输出。
说明:如果A的全部真因子(包括1,不包括A自身)之和等于B;B的全部真因子之和等于A,则称整数A和B为一对亲密数。
#include <stdio.h>int frinum(long s[][2],long n){ long a,b,m,i,k=0;for(a=2;a<=n;a++){ for(b=0,i=1;i<=a/2;i++)if(!(a%i)) b+=i;for(m=0,i=1;i<=b/2;i++)if(!(b%i)) m+=i;if(m==a&&b>m){ s[k][0]=a; s[k][1]=b; k++; }}return k;}void main(){ int i,j; long n,s[20][2];j=frinum(s,3000);for(i=0;i<j;i++)printf("\n( %ld,%ld )",s[i][0],s[i][1]);}2.编写函数int arms(int ar[])实现以下功能:将所有3、4位Armstrong数存入数组ar中,函数返回这些Armstrong数的个数。
2011年9月全国计算机二级C语言考试真题2011年9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分))、B)、C)、D)四个选项中,只有一个选项是正确的。
请将正确选项填涂在答题卡相应位置上,答在试卷上不得分中正确的是程序B)设计算法时只需考虑数据结构的设计时只需考虑结果的可靠性D)以上三种说法都不对线性链表叙述中,正确的是点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续与删除时,不需要移动表中的元素说法都不对二叉树的叙述中,正确的是总是比度为2的结点少一个B)叶子结点总是比度为2的结点多一个数是度为的结点数的两倍D)度为2的结点数是度为1的结点数的两倍能分为应用软件、系统软件和支撑软件(或工具软件)。
下现属于应用软件的是管理系统B)C语言编译程序C)UNIX操作系统D)数据库管理系统结构图如下图所示:结构图的深度是B)6 C)3 D)2的任务是用例B)验证程序的正确性C)发现程序中的错误D)诊断和改正程序中的错误数据库设计的叙述中,正确是的析阶段建立数据字典B)在概念设计阶段建立数据字典计阶段建立数据字典D)在物理设计阶段建立数据字典统的三级模式不包括B)内模式C)外模式D)数据模式关系R、S和T如下:则由关系R和S得到关系T的操作是B)差C)交D)并项中属于面向对象设计方法主要特征的是B)自顶向下C)模块化D)逐步求精述中错误的是写的函数源程序,其文件名后缀可以是.C写的函数都可以作为一个独立的源程序文件写的每个函数都可以进行独立的编译并执行言程序只有一个主函数项中关于程序模块化的叙述错误的是成若干相对独立的模块,可便于编码和调试成若干相对独立、功能单一的模块,可便于重复使用这些模块底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序项中关于C语言常量的叙述错误的是R S T,是指在程序运行过程中,其值不能被改变的量整型常量、实型常量、字符常量和字符串常量为数值常量和非数值常量用的变量可以定义成常量义语句: int a=10; double b=3.14; ,则表达式'A'+a+b的值的类型是B)int C)double D)float义语句: int x=12, y=8, z; ,在其后执行语句z=0.9+x/y;,则z的值为B)1 C)2 D)2.4义: int a,b;,通过语scanf("%d;%d",&a,&b);,能把整数3赋给变量a, 5赋给变量b的输入数据是B)3,5 C)3;5 D)35义语句: int k1=10, k2=20;,执行表达式(k1=k1>k2) && (k2=k2>k1)后,k1和k2的值分别为B)0和20 C)10和1 D)10和20程序stdio.h>, b=0;b++;(a==0) b+=2;=3;%d\n",b);的输出结果是B)1 C)2 D)3件语句中,输出结果与其他语句不同的是printf("%d\n", x); else printf("%d\n",y);printf("%d\n", y); else printf("%d\n",x);printf("%d\n", x); else printf("%d\n",y);printf("%d\n", x); else printf("%d\n",y);程序stdio.h>;--);%d\n",a);的输出结果是B)0 C)1 D)7能输出字符A的语句是(注:字符A的ASCII码值为65,字符a的ASCII码值为97)c\n",'a'-32); B)printf("%d\n",'A')c\n",65); D)printf("%c\n",'B'-1);程序(注:字符a的ASCII码值为97)stdio.h>={"abc"};f("%d",*s%10); ++s; }s);的输入结果是B)789 C)7890 D)979899义语句: double a,*p=&a; 以下叙述中错误的是中的 * 号是一个间址运算符中的 * 号只是一个说明符中的p只能存放double类型变量的地址中,*p=&a把变量a的地址作为初值赋给指针变量p程序stdio.h>ouble x);a=0; int i;; i<30; i+=10) a+=f( (double)i);%5.0f\n",a);ouble x)x*x+1; }的输出结果是B)401 C)500 D)1404义语句: int year=2009, *p=&year;,以下不能使变量year中的值增至2010的语句是B)(*p)++; C)++(*p); D)*p++;义数组的语句中错误的是]={1,2,3,4,5,6} B)int num[][3]={{1,2},3,4,5,6};2][4]={{1,2},{3,4},{5,6}}; D)int num[][4]={1,2,3,4,5,6};下程序stdio.h>nt *p)%d\n", p[5]); }0]={1,2,3,4,5,6,7,8,9,10};]);的输出结果是B)6 C)8 D)9程序stdio.h>4nt a[][N], int b[]); i<N; i++) b[i]=a[i][i]-a[i][N-1-i];][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}, y[N], i; );;i<N; i++) printf("%d,",y[i]); printf("\n");的输出结果是0, B)-3,-1,1,3, C)0,1,2,3, D)-3,-3,-3,-3, 函数ar *x, char *y);(*x==*y) && *x!='\0') {x++; y++; n++; }n;是y所指字符串中是否有'\0'y所指字符串中最前面连续相同的字符个数字符串赋给x所指存储空间y所指字符串中相同的字符个数义语句: char *s1="OK", *s2="ok";,以下选项中,能够输出"OK"的语句是(s1,s2)==0 puts(s1); B)if (strcm(s1,s2)!=0 puts(s2);(s1,s2)==1 puts(s1); D)if (strcm(s1,s2)!=0 puts(s1); 序的主函数中调用了在其前面定义的fun函数stdio.h>a[15],k;中错误的fun函数首部是un( double a[15]) B)double fun( double *a)un( double a[]) D)double fun( double a)程序stdio.h>string.h>5][10]={"china", "beijing", "you", "tiananmen", "welcome"};; char t[10];0; i<4; i++)=i+1; j<5; j++)strcmp(a[i], a[j])>0)trcpy(t,a[i]); strcpy(a[i],a[j]); strcpy(a[j],t); }]);的输出结果是B)china C)welcome D)tiananmen 程序stdio.h>m)int n=0;n;;%d,", f(++n));%d\n", f(n++));的输出结果是B)1,1 C)2,3 D)3,3 程序stdio.h>[3][5]={"AAAA","BBB","CC"};"%s\n", ch[1] );的输出结果是B)CC C)BBBCC D)BBB 程序stdio.h>string.h>har *w, int m)*p1, *p2;p2=w+m-1;1<p2) { s=*p1; *p1=*p2; *p2=s; p1++; p2--; }]="123456";strlen(a) ); puts(a);的输出结果是B)116611 C)161616 D)123456 程序stdio.h>string.h>ruct {char name[9]; char sex; int score[2]; } STU;a)"Zhao",'m',85,90};.name, );sex;; i<2; i++) a.score[i]=b.score[i];a;"Qian",'f',95,92}, d;%s,%c,%d,%d,",,d.sex,d.score[0],d.score[1]);%s,%c,%d,%d\n",,c.sex,c.score[0],c.score[1]);的输出结果是,90,Qian,f,95,92 B)Zhao,m,85,90,Zhao,m,85,90 ,92,Qian,f,95,92 B)Qian,f,95,92,Zhao,m,85,90 程序stdio.h>node {int n; struct node *next;} *p;node x[3]={{2,x+1}, {4,x+2}, {6, NULL}};%d,", p->n );%d\n",p->next->n );的输出结果是B)2,4 C)3,4 D)4,6程序stdio.h>, b;printf("%d\n",b);的输出结果是B)4 C)6 D)8项中叙述错误的是数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值的同一函数中,各复合语句内可以定义变量,其作用域仅限于本复合语句内数中定义的自动变量,系统不自动赋确定的初值数的形参不可以说明为static型变量程序stdio.h>p;,i,a[6]={1,2,3,4,5,6};en("d2.dat","w");; i<6; i++) fprintf(fp, "%d\n",a[i]);p);en("d2.dat","r");; i<3; i++) fscanf(fp, "%d%d", &k, &n);p);%d,%d\n", k, n);的输出结果是B)3,4 C)5,6 D)123,456每空2分,共30分)正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。
2011年计算机科学与技术专业C 语言试卷题号 一 二 三 四 总分校核分数阅卷一、基础知识填空题(每空2分,共20分)1. C 语言规定,必须用___ ____标识符作为主函数。
2. C 语言中用来表示整常数的进制有哪三种:__ _、__ _、__ _。
3. break 语句只能用于___ ____语句和___ ____语句。
4. 数组名命名规则和变量名相同,由字母、数字和下划线组成,并且开头只能是______ _________。
5. C 语言中,形参缺省的存储类说明是___ ______。
6. 一个专门用来存放另一个变量地址的变量叫____ ______。
7. 定义FILE *fp,这里fp 是一个___ _____。
二、基础选择题(每题2分,共30分)1. C 语言程序是由___ ______组成。
A.若干个过程B.若干子程序C.一个主程序和若干个子程序D.若干函数2. 完成C 源程序编辑后,到生成执行文件,C 理系统必须执行的步骤依次为___ 。
A.连接、编译B.编译、连接C.连接、运行D.运行 3. 下列符号中不属于C 语言保留字的是__________。
A.volatileB.thenC.staticD.for4. 假设在程序中a 、b 、c 均被定义成int 型,并且已被赋予大于1的值,则下列几种表达中,能正确表示代数式abc1的C 表达式是__________。
A.1/a*b*c B.1/(a*b*c) C.1/a/b/(float)c D.1.0/(a*b*c)5.设有int x=10,y=3;则下列表达式值为1的是__________。
A.!(y= =x/3)B.y!=x%7C.x>0&&y<0D.x!=y||x>=y6.字符型常量在内存中存放的是该字符对应的__________。
A. ASCII码值B. 十进制值C. BCD码值D. 内部码值7.以下叙述不正确的是__________。
C 语言 考试题
,
满分为100分。
本试卷为卷面笔试部分,卷面满分为90分。
一、填空题(10分,第1小题4分,其余每空1分) 1.设有下列登记表,请采用最佳方式定义一种数据类型来表示这些数据的集合。
其中,配偶姓名用spouseName 表示,子女人数用children 表示。
注
意
行
为
规
范
,
遵
守
考
试
纪
律
! 姓名name 性别 sex 职业 profession 婚姻状况marital 未婚 年龄 single Age 已婚married 离婚日期 divorcedDay 配偶 姓名 子女 人数 年 year 月 month 日 date 婚姻状况标记 marry Flag marital
2.C语言中构造数据类型包括、、。
3.C语言中用_______表示逻辑值“假”,用________表示逻辑值
“真”。
4.char *p[10];这条语句的含义是:__ ___ _ _ 。
二、判断下列问题描述正确与否,正确的打“√”,错误的打
“×”。
(4分,每题1分)
1.如果在程序中定义静态变量和全局变量时,未明确指明其初始值,那么它们可以在程序编译阶段自动被初始化为0值。
()
2.在C语言中,可以用typedef定义一种新的数据类型。
()
3.在C语言中,实参与其对应的形参各占独立的存储单元。
()
4. 在C语言中,函数的定义可以嵌套。
()
三、选择题:(10分,每题2分)
1.若用数组名作为函数调用时的实参,则实际上传递给形参
的是()。
A.数组的首地址 B. 数组的第一个元素值
C.数组中全部元素的值 D. 数组元素的个数
2.判断两个字符串s1和s2相等,应当使用( )。
A. if (s1 == s2)
B. if (s1 = s2)
C. if (!strcmp(s1,s2))
D. if (strcmp(s1,s2))
3.在while(x)语句中的x与下面条件表达式等价的是:。
A. x!=0
B. x==1
C. x!=1
D. x==0
4.二维数组a有m行n列,则在a[i][j]之前的元素个数为()。
A. j*n+i
B. i*n+j
C. i*n+j-1
D. i*n+j+1
5.设有声明语句:int a=1,b=0;则执行以下语句后输出为:。
switch (a)
{
case 1:
switch (b)
{
case 0: printf("**0**");
break;
case 1: printf("**1**");
break;
}
case 2: printf("**2**");
break;
}
A)**0** B) **0****2**
C)**0****1****2** D) 有语法错误
四、写出下列程序的运行结果。
(6分,每题2分) 1.#include<stdio.h>
void Fun(int *y)
{
printf("*y = %d\n", *y);
*y = 20;
printf("*y = %d\n", *y);
}
main()
{
int x = 10;
printf("x = %d\n", x);
Fun(&x);
printf("x = %d\n", x);
}
运行结果是:
2.#include<stdio.h>
int Fun(int x)
{
static int y = 0;
y += x;
return y;
}
main()
{
int x = 10, y = 0, k;
for(k=0; k<2; k++)
{
y = Fun(x);
printf("y = %d\n", y);
}
}
运行结果是:
3.#include<stdio.h>
main ( )
{
char a[] = "programming" , b[] = "language" ;
char *p1, *p2 ;
int i;
p1 = a;
p2 = b;
for (i=0; i<7; i++)
{
if (*(p1+i) == *(p2+i))
printf("%c" ,*(p1+i)) ;
}
printf("\n");
}
运行结果是:
五、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。
(10分,每空2分)
1.下面这个程序用于读入5个整数,当程序读入的数据为正整数时,则显示该数,否则,不显示。
读入5个数据后,程序结束运行。
#include <stdio.h>
main()
{
int i, n;
for (i=1; i<=5; i++)
{
printf("Please enter n:");
scanf("%d", &n);
if (n <= 0) _____________;
printf("n = %d\n", n);
}
printf("Program is over!\n");
}
2.韩信点兵。
韩信有一队兵,他想知道有多少人,便让士兵排队报数:按从1至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个士兵报的数为5;按从1至7报数,最末一个士兵报的数为4;最后再按从1至11报数,最末一个士兵报的数为10。
下面程序的主要功能是计算韩信至少有多少兵。
#include <stdio.h>
main()
{
int x = 1;
int find = 0;
for (x=1; ________; x++)
{
if (x%5==1 && x%6==5 && x%7==4 && x%11==10)
{
printf(" x = %d\n", x);
____________;
}
}
}
3.下面程序是计算字符串中实际字符的个数,即实现和字符串处理函数strlen相同的功能。
unsigned int MyStrlen(char str[])
{
unsigned int len = 0, i;
for (i=0; str[i]!= ; i++)
{
len ;
}
return len;
}
六、在下面这个程序中,要求其实现的功能是对用户输入的任意整数计算其阶乘,输入小于等于-1的数时退出程序。
下面给出的是一个有错误的程序,请找出其中的错误,并改正之。
(10分)
#include <stdio.h>
#define END -1;
long Factorial(int x);
main()
{
int x;
while (1);
{
printf("input x:);
scanf("%d", x);
if (x <= END)
break
else
printf("%d! = %d\n", x, Factorial(x));
}
}
long Factorial(int x)
{
int i;
int result;
for (i=1, i<=x, i++)
result *= i;
}
七、编程(40分,第1和2小题各10分,第3小题20分) 1.编程计算1!+2!+3!+……+10!的值。
2. 从键盘任意输入10个不相同的整数,然后,输入要查找的数x ,如果在这10个数中找到x ,则打印“Found!”;如果找不到,则打印“Not found!”。
3.从键盘任意输入某班20个学生的成绩,打印最高分,并统计不及格学生的人数。
注
意
行
为
规
范
,
遵
守
考
试
纪
律
!。