C语言期中考试试卷

合集下载

C语言程序设计期中考试题

C语言程序设计期中考试题

C语言程序设计期中考试题一、选择题(每个3分共12分)1、关于函数的实参和形参说法正确的是()A、实参与其对应的形参共同占用同一个存储单元B、实参与其对应的形参各自占用独立的存储单元C、只有当实参与其对应的形参同名时才占用同一个存储单元D、形参是虚拟的不占用内存单元2、下列程序运行后的输出结果是()#include<stdio.h>void main(){ int i,sum=0;for(i=1;i<=10;i++)sum=sum+i;printf(“%d,%d\n”,i,sum);}A、10,55B、10,66C、11,55D、11,663、下列语句执行后,x的值是()int m=10,n=2,x=100;x*=m/n-m*n;A、300B、-1000C、-500D、5004、下列语句执行后,x的值是()float a=0.5,b=1.5,c=3.5;x=(a+b,3*c,0<=a<1);A、2B、4.5C、0D、1二、填空题(每空4分共48分)1、编程的过程是:问题分析、__________、编辑程序、编译连接、生成可执行程序、运行与调试。

2、一个C语言程序可以由多个源程序文件组成,每个文件中可以有若干函数,但有且只能有一个________函数。

3、C语言的标示符由字母、数字和________组成,其中第一个字符必须是________________4、与下列语句:if(a+b>c*d)res=a*b;else res=c+d;等价的语句是:res=__________________________________5、假设有定义:int x;则逻辑表达式x&&1等价于_________________________6、下列程序先输出m个空格,再输出n个指定的字符ch,请补充程序:#include<stdio.h>void print(__________________){ int i;for(i=1;i<=m;i++)__________________for(______________)printf(“%c”,ch);}7、阅读下列程序,并补充完整:#include<stdio.h>int sum(int n){___________________s=s+n;return s;}void main(){ int i,n,s;printf(“请输入一个正整数n,计算s=1+2+...+n\n”);scanf(“%d”,&n);for(i=1;i<=n;i++)s=sum(i);printf(“s=%d”,s);}8、下面程序的输出结果是__________________#include<stdio.h>void main(){ int num=0;while(num++<6){ printf(“%d,”,num);if(num=3)break;}printf(“%d\n”,num);}9、下面程序的输出结果是_____________#include<stdio.h>void main(){int a=2,b=3,c=1;printf("%d,%d,%d\n",a,b+c, a=10||--c||a-b);}三、程序设计题(共40分)1、(10分)编写函数sum,接收两个正整数a和n参数,计算a+aa+...+aa...a(n个a)的和并返回。

大一c语言期中考试试题及答案

大一c语言期中考试试题及答案

大一c语言期中考试试题及答案一、选择题(每题2分,共20分)1. C语言中,用于定义一个结构体类型的关键字是()。

A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项不是C语言中的运算符?()A. %B. &&C. ::D. ==答案:C3. 在C语言中,用于定义一个函数的关键字是()。

A. intB. voidC. returnD. function答案:B4. 下列哪个选项不是C语言中合法的变量名?()A. _nameB. name_2C. 2nameD. name答案:C5. 在C语言中,用于表示逻辑“与”的运算符是()。

A. &&B. ||C. !D. ^答案:A6. 下列哪个选项是C语言中的控制语句?()A. ifB. switchC. caseD. all of the above答案:D7. C语言中,用于定义一个字符常量的是()。

A. 'a'B. "a"C. aD. a答案:A8. 在C语言中,用于表示“不等于”的运算符是()。

A. ==B. !=C. =D. ==答案:B9. 下列哪个选项是C语言中的文件操作函数?()A. printfB. scanfC. fopenD. fclose答案:C10. 在C语言中,用于定义一个整型数组的语法是()。

A. int arr[10];B. int arr=10;C. int arr[];D. int [10] arr;答案:A二、填空题(每题2分,共20分)1. C语言中,用____关键字定义一个全局变量。

答案:extern2. 一个C语言程序的执行从____函数开始。

答案:main3. C语言中,用于声明一个指针变量的语法是____。

答案:int *p;4. C语言中,____运算符用于取地址。

答案:&5. C语言中,____运算符用于解引用指针。

C语言期中试卷(含答案)

C语言期中试卷(含答案)

《 C语言》课程期中考试试卷一. 在A B C D四个选项中,选择一个正确的答案填入括号内( )1、用char定义的变量在IBM PC机中能表示的数的范围是:A) 0 ~+255 B) 0 ~+65535C) -128 ~+127 D) 只能存字符,不能存数( )2、设有int k=2; 则执行printf(“%d”,k++);的输出为:A) 0 B) 1 C) 2 D) 3()3、在while(!x)中,!x与______等价。

A) x==0 B) x!=0 C) x==1 D) x!=1()4、设有声明int value=‟5‟;,则执行下列选项的赋值语句后,value的值不等于5的是_____。

A.) value=value - ‟0‟; B) value=value - 0x30;C) value=value - 49; D) value=value - ‟\060‟;()5、如int k=7;float x=2.5,y=4.7; 则表达式 x+k%3*(int)(x+y)%2/4 运算后的值是:A) 0 B) 2 C) 2.5 D) 2.75( ) 6、若有int a,b;则语句:printf("%d",(a=2)&&(b=-2);的输出结果是:A)无输出 B)结果不确定 C)-1 D)1( ) 7、设有int a=2; 则执行printf("%d",5>a>1);的输出为:A)0 B)1 C)2 D)3( ) 8、执行语句c=(a=2,a+1,b=a++);后, a,b,c的值依次为:A)2,3,4 B)3,3,3 C)4,5,4 D)3,2,2( )9、以下程序的输出结果是A)2 0 B)3 1 C)3 2 1 D)2 1 0main( ){ int n=4;while(n--)printf("%d ",--n);}( )10、给出以下定义:char x[ ]="abcdef";char y[ ]={'a','b','c','d','e','f'};则正确的叙述为A) 数组x和数组y等价 B) 数组x和数组y的长度相同C) 数组x的长度大于数组y的长度 D) 数组x的长度小于数组y的长度( )11、若对一个函数调用在前, 定义在后,C语言将视其返回值为__________类型。

C语言期中试卷

C语言期中试卷

C语言程序设计期中考试卷一、选择题1.下面程序段的运行结果是 ..forx=3; x<6; x++ printfx%2 “%d”: “%d\n”; x;A.3 4 5B.345C.345D.3452.下面程序的运行结果是 .. include<stdio.h>int main{int i;fori=1; i<=5; i++switchi%5{case 0: printf"";break;case 1: printf"";break;default: printf"\n";case 2: printf"&";} return 0;}A.&&& B.& & &C.&&&D.&3.下面程序的功能是求算式xyz+yzz=532中的x;y;z的值其中xyz和yzz分别表示一个三位数;请选择填空..include <stdio.h>int main{ int x;y;z;I;result=532;forx=1;x<10;x++fory=1;y<10;y++for ; z<10; z++{ i=100x+10y+z+100y+10z+z;ifprintf“x=%d;y=%d;z=%d\n”;x;y;z;}return 0;}A1.z=x B1.z=1 C1.z=0 D1.z=yA2.i/result==1 B2.i=result C2.i=result D2.i==result 4.以下正确的描述是 ..A.continue语句的作用是结束整个循环的执行B.只能在循环体内和switch语句体内使用break语句C.在循坏体内使用break语句或continue语句的作用相同D.从多层循环嵌套中退出;只能使用goto语句5.在下面的程序中; ..include<stdio.h>int main{int t;x;fort=1;t<=100;t++{scanf"%d";&x;ifx<0 continue;printf"%3d";t;}return 0;}A.当x<0时整个循环结束B.x>=0时什么也不输出C.printf函数永远也不执行D.最多允许输出100个非负整数6.与下面程序段等价的是 ..forn=100; n<=200; n++{ ifn%3==0 continue;printf“%4d”;n;}A.forn=100; n%3 && n<=200; n++ printf“%4d”;n; B.forn=100; n%3 || n<=200; n++ printf“%4d”;n; C.forn=100; n<=200; n++ ifn%3=0 printf“%4d”;n; D.forn=100; n<=200; n++{ifn%3 printf“%4d”;n;else continue;break;}7.下面程序的运行结果是 ..include <stdio.h>int main{ int a;b;for a=1; b=1; a<=100; a++{ ifb>=20 break;ifb%3= =1 {b+=3;continue;}b - =5;}printf“%d\n”;a;return 0;}A.7 B.8 C.9 D.10二、填空题1. 下面程序段是从键盘输入的字符中统计数字字符的个数;用换行符结束循环..请填空..int n=0; c;c=getchar ;while{ if n++;c=getchar}2. 有1020个西瓜;第一天卖一半多两个;以后每天卖剩下的一半多两个;下面的程序统计买完所需的天数;请填空..include <stdio.h>int main{ int day=0; x1=1020; x2;while{ x2= ;x1=x2;day++;}printf“day=%d\n”;day;return 0;}3. 当运行以下程序时;从键盘键入right<回车>;则下面程序的运行结果是 ..include<stdio.h>int main{char c;whilec=getchar ='' putchar++c;putchar'\n';return 0;}4. 下面程序的运行结果是 ..include<stdio.h>int main{int a=2;s=0;n=1;count=1;whilecount<=7 {n=na;s=s+n;++count;}printf"s=%d\n";s;return 0;}5. 当运行以下程序时;从键盘输入“China<回车>”;则下面程序的运行结果是 ..include<stdio.h>int main{int v1=0;v2=0; char ch;whilech=getchar =''switchch{case 'a':case 'h':default: v1++;case 'o': v2++;}printf"%d;%d\n";v1;v2;return 0;}6. 下面程序段中循环体的执行次数是 ..a=10; b=0;do { b+=2; a-=2+b;}whilea>=0;7. 下面程序段的运行结果是 ..x=2;do { printf“”; x--; } whilex= =0;8. 下面的程序的功能是用do-while语句求1—1000之间满足“用3除余2;用5除余3;用7除余2”的数;且一行只打印5个数;请填空..include <stdio.h>int main{ int i=1;j=0;do{ if{ printf“%4d”;i;j++;if printf“\n”;}i=i+1;} whilei<1000;return 0;}9. 当运行以下程序时;从键盘输入“1 2 3 4 5 -1<回车>”;则下面程序的运行结果是 ..include<stdio.h>int main{ int k=0;n;do{scanf"%d";&n;k+=n;}whilen=-1;printf"k=%d n=%d\n";k;n;return 0;}10. 下面程序的运行结果是 ..include<stdio.h>int main{int i=0;x=0;y=0;do{++i;ifi%2=0 {x=x+i;i++;}y=y+i++;}whilei<=7;printf"x=%d;y=%d\n";x;y;return 0;}11. 下面程序段是找出整数的所有因子..请填空..include<stdio.h>int main{int x;i;scanf"%d";&x;i=1;for ; ;{ifx%i==0 printf"%3d";i;i++;} return 0;}12. 鸡、兔共有30只; 脚共有90个;下面程序段是计算鸡兔各有多少只;x 代表有多少只鸡;y代表有多少只兔子;请填空完成程序..forx=1; x<=30; x++{y=30-x;if printf“%d;%d\n”;x;y;}13. 下面程序段的运行结果是 ..fora=1;i=-1; -1<=i<1; i++{ a++; printf“%2d”;a;}printf“%2d”;i;14. 下面程序的功能是1-3+5-7+……-99+101的值..请填空..include<stdio.h>int main{int i;t;s=0;q=1;fori=1;i<=101;i+=2{t= ; s=s+t; q= ;}printf"%d\n";s;return 0;}15. 以下程序的功能是根据公式e=1+1/1+1/2+1/3+……;求e的近似值;精度要求为10-6..请填空..include<stdio.h>int main{int i; double e;n;; n=1.0;fori=1; ;i++{n/=i;e+=n;}printf"e=%f\n";e;return 0;}16. 下面程序的运行结果是 ..include<stdio.h>int main{int i;fori=1;i<=5;i++switchi%2{case 0: i++; printf"";break;case 1: i+=2; printf"";default: printf"\n";}return 0;}17. 下面程序的功能是统计用数字0-9可以组成多少个没有重复数位的3位偶数..请填空..include<stdio.h>int main{int n=0;i;j;k;fori=1;i<=9;i++fork=0;k<=8;ifk=iforj=0;j<=9;j++if{printf"%d\n";i100+j10+k;n++;}printf"n=%d\n";n;return 0;}18. 下面程序的功能是输出1-100之间满足每位数的乘积大于每位数的和的数..请填空..include<stdio.h>int main{ int n;k=1;s=0;m;forn=1;n<=100;n++{k=1;s=0;;while{k=m%10;s+=m%10;;}ifk>s printf"%5d";n;}printf"\n";return 0;}三、编程题1.打印出以下图形10’s u s2.有三个数a、b、c;由键盘输入;输出其中第二大的数..12’3.编写一个程序;求s=1+1+2+1+2+3+…+1+2+3+…+n的值..15’4.输入一批非0数;直到输入0时为止;计算其中奇数的平均值和偶数的乘积..15’5.有一口深度为h米的水井;井底有一只青蛙;它每天白天能够沿井壁向上爬m米;夜里则顺井壁向下滑n米;若青蛙从某个早晨开始向外爬;试编写一个函数:对于任意指定的h;m;n值均为自然数;计算青蛙多少天能够爬出井口15’。

C语言期中考试题目及答案

C语言期中考试题目及答案

一、选择题:【1】在C语言中,用户能使用的正确标识符是。

A) 5f B) _for C) struct D) _f.5答案: B 分析:标识符只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线;大小写敏感;不能使用关键字;最长32 个字符。

【2】以下那个是正确的C语言常量。

A) 0678 B) '\0101' C) 1.2E3.5 D) 123L答案:D【3】以下对C语言源程序有关常识正确的描述是。

A) main 函数必须位于文件的开头B) 每个语句必须单独一行C) 标识符中大小写字母没有区别D) 宏定义#define 部分不一定要放在程序的最开头位置答案:D【4】以下for 循环的执行次数是。

for(x=0,y=0;(y=123)&&(x<4);x++)A)是无限循环B)循环次数不定C)执行4次D)执行3次答案:C分析:若要判断(y=123)&&(x<4)假,因为y=123永远为真,所以只需要判断x<4为假即可。

【5】对for( 表达式1;; 表达式3) 可理解为。

A)for( 表达式1;0; 表达式3)B)for( 表达式1;1; 表达式3)C)for( 表达式1; 表达式1; 表达式3)D)for( 表达式1; 表达式3; 表达式3)答案: B【6】设有程序段int k=10;while(k=0) k=k-1;则下面描述中正确的是。

A)while循环执行10次 B )循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次答案:C分析:因为k=0 为假,所以程序不执行其后的语句。

【7】C语言中while和do-while 循环的主要区别是。

A) do-while 的循环体至少无条件执行一次B) while 的循环控制条件比do-while 的循环控制条件严格C) do-while 允许从外部转到循环体内D) do-while 的循环体不能是复合语句答案:A【8】设有:int a=1,b=2,c=3,d=4,m=2,n=2; 执行(m=a>b)&&(n=c>d) 后n 的值为。

大一c语言期中考试题和答案

大一c语言期中考试题和答案

大一c语言期中考试题和答案大一C语言期中考试题和答案一、选择题(每题2分,共20分)1. C语言中,以下哪个选项是合法的整型常量?A. 0x12B. 0x12.0C. 0x12.5D. 0x12L答案:A2. 以下哪个是C语言中的关键字?A. mainB. includeC. intD. input答案:C3. 在C语言中,以下哪个选项不能用作变量名?A. _nameB. 2namesC. name$D. name答案:C4. 以下哪个选项是C语言中的合法字符串常量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!", "Another String"D. "Hello, World!"答案:D5. 在C语言中,以下哪个选项是正确的函数声明?A. int function();B. int function int x;C. int function(int x);D. int function x;答案:C6. C语言中,以下哪个选项是正确的数组声明?A. int array[10];B. int array[];C. int array[10] = {1, 2, 3};D. All of the above答案:D7. 在C语言中,以下哪个选项是正确的指针声明?A. int *ptr;B. int *ptr = 0;C. int ptr = 0;D. Both A and B答案:D8. C语言中,以下哪个选项是正确的条件语句?A. if (x > 0)printf("Positive");B. if x > 0printf("Positive");C. if (x > 0)printf("Positive")elseprintf("Non-positive");D. Both A and C答案:D9. 在C语言中,以下哪个选项是正确的循环语句?A. for (int i = 0; i < 10; i++)printf("%d ", i);B. for (int i = 0; i <= 10; i++)printf("%d ", i);C. for (i = 0; i < 10; i++)printf("%d ", i);D. All of the above答案:D10. C语言中,以下哪个选项是正确的函数调用?A. void function();B. function();C. function(10);D. Both B and C答案:D二、填空题(每题2分,共20分)1. C语言中,用于定义一个整型变量的关键字是______。

C语言期中试卷(含答案)

C语言期中试卷(含答案)

《 C语言》课程期中考试试卷一. 在A B C D四个选项中,选择一个正确的答案填入括号内( )1、用char定义的变量在IBM PC机中能表示的数的范围是:A) 0 ~+255 B) 0 ~+65535C) -128 ~+127 D) 只能存字符,不能存数( )2、设有int k=2; 则执行printf(“%d”,k++);的输出为:A) 0 B) 1 C) 2 D) 3()3、在while(!x)中,!x与______等价。

A) x==0 B) x!=0 C) x==1 D) x!=1()4、设有声明int value=‟5‟;,则执行下列选项的赋值语句后,value的值不等于5的是_____。

A.) value=value - ‟0‟; B) value=value - 0x30;C) value=value - 49; D) value=value - ‟\060‟;()5、如int k=7;float x=2.5,y=4.7; 则表达式 x+k%3*(int)(x+y)%2/4 运算后的值是:A) 0 B) 2 C) 2.5 D) 2.75( ) 6、若有int a,b;则语句:printf("%d",(a=2)&&(b=-2);的输出结果是:A)无输出 B)结果不确定 C)-1 D)1( ) 7、设有int a=2; 则执行printf("%d",5>a>1);的输出为:A)0 B)1 C)2 D)3( ) 8、执行语句c=(a=2,a+1,b=a++);后, a,b,c的值依次为:A)2,3,4 B)3,3,3 C)4,5,4 D)3,2,2( )9、以下程序的输出结果是A)2 0 B)3 1 C)3 2 1 D)2 1 0main( ){ int n=4;while(n--)printf("%d ",--n);}( )10、给出以下定义:char x[ ]="abcdef";char y[ ]={'a','b','c','d','e','f'};则正确的叙述为A) 数组x和数组y等价 B) 数组x和数组y的长度相同C) 数组x的长度大于数组y的长度 D) 数组x的长度小于数组y的长度( )11、若对一个函数调用在前, 定义在后,C语言将视其返回值为__________类型。

大一c语言期中考试题和答案豆丁网

大一c语言期中考试题和答案豆丁网

大一c语言期中考试题和答案豆丁网C语言期中考试试卷一、选择题(每题2分,共40分)1. 以下哪个选项是C语言的关键字?A. intB. integerC. INTD. Integer答案:A2. C语言中,哪个函数用于计算并返回两个整数相加的结果?A. add()B. sum()C. plus()D. addint()答案:B3. 在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. int array[2][3] = {{1, 2, 3}, {4, 5, 6}};B. int array[2][3] = {1, 2, 3, 4, 5, 6};C. int array[2][3] = {{1, 2, 3}, {4, 5, 6, 7}}; // 错误,数组元素不匹配D. int array[2][3] = {1, 2, 3, 4, 5, 6, 7}; // 错误,数组元素不匹配答案:A5. C语言中,以下哪个是正确的函数定义?A. int func(int a, int b) { return a + b; }B. int func(int a; int b) { return a + b; } // 错误,分号使用不当C. int func(int a, int b) { return a - b; }D. int func(int a, b) { return a + b; } // 错误,b未指定类型答案:A6. C语言中,以下哪个是正确的条件语句?A. if (a > b) then { /* code */ }B. if (a > b) { /* code */ }C. if a > b { /* code */ } // 错误,缺少括号D. if (a > b) then { /* code */ } // 错误,then关键字不正确答案:B7. C语言中,以下哪个是正确的循环语句?A. for (int i = 0; i < 10; i++) { /* code */ }B. for i = 0 to 10 { /* code */ } // 错误,C语言中没有to关键字C. for (int i = 0; i < 10; i++) { /* code */ }D. for i = 0; i < 10; i++ { /* code */ } // 错误,缺少括号答案:C8. C语言中,以下哪个是正确的函数调用?A. func(5, 3);B. func(5; 3); // 错误,分号使用不当C. func(5, 3);D. func(5, 3);答案:A9. C语言中,以下哪个是正确的宏定义?A. #define PI 3.14159B. #define PI = 3.14159; // 错误,宏定义中不应包含等号和分号C. #define PI 3.14159D. #define PI 3.14159答案:A10. C语言中,以下哪个是正确的结构体定义?A. struct Point { int x, y; };B. struct Point { int x; int y; };C. struct Point { int x, y; };D. struct Point { int x; int y; };答案:B11. C语言中,以下哪个是正确的指针定义?A. int *p;B. int *p;C. int *p;D. int *p;答案:A12. C语言中,以下哪个是正确的文件操作函数?A. fopen()B. open()C. create()D. file()答案:A13. C语言中,以下哪个是正确的递归函数定义?A. int factorial(int n) { if (n == 0) return 1; else return n * factorial(n - 1); }B. int factorial(int n) { if (n == 0) return 1; else return n * factorial(n - 1); }C. int factorial(int n) { if (n == 0) return 1; else return n * factorial(n - 1); }D. int factorial(int n) { if (n == 0) return 1; else return n * factorial(n - 1); }答案:A14. C语言中,以下哪个是正确的枚举定义?A. enum Color { Red, Green, Blue };B. enum Color { Red, Green, Blue };C. enum Color { Red, Green, Blue };D. enum Color { Red, Green, Blue };答案:A15. C语言中,以下哪个是正确的联合体定义?A. union Data { int i; float f; char ch; };B. union Data { int i; float f; char ch; };C. union Data { int i; float f; char ch; };D. union Data { int i; float f; char ch; };答案:A16. C语言中,以下哪个是正确的位运算符?A. &B. |C. ^D. ~答案:D17. C语言中,以下哪个是正确的位段定义?A. struct BitFlags { unsigned int : 1; unsigned int flag2 : 1; };B. struct BitFlags { unsigned int flag1 : 1; unsigned int flag2 : 1; };C. struct BitFlags { unsigned int flag1 : 1; unsigned int flag2 : 1; };D. struct BitFlags { unsigned int flag1 : 1; unsigned int flag2 : 1; };答案:B18. C语言中,以下哪个是正确的动态内存分配函数?A. malloc()B. alloc()C. new()D. mem()答案:A19. C语言中,以下哪个是正确的动态内存释放函数?A. free()B. dealloc()C. delete()D. mem()答案:A20. C语言中,以下哪个是正确的预处理指令?A. #includeB. includeC. #importD. import答案:A二、填空题(每题2分,共20分)1. C语言中,用于定义整型变量的关键字是 ________。

C语言期中测试(含答案)

C语言期中测试(含答案)

C语言期中测试(开卷测试,答案写在白纸上)一.选择题(1)C语言源程序名的后缀是A).exe B).C C).obj D).cpp(2)以下选项中,合法的一组C语言数值常量是A)028 B)12. C).177 D)0x8A5e-3 0Xa23 4c1.5 10,000-0xf 4.5e0 0abc 3.e5(3)以下正确的字符串常量是A)"\\" B)’abc’C)OlympicGames D)"" (4) 表达式3.6-5/2+1.2+5%2的值是A)4.3 B)4.8 C)3.3 D)3.8(5)以下关于long、int和short类型数据占用内存大小的叙述中正确的是A)均占4个字节B)根据数据的大小来决定所占内存的字节数C)由用户自己定义D)由C语言编译系统决定(6)以下叙述中错误的是A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出B)数组名代表的是数组所占存储区的首地址,其值不可改变C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息D)可以通过赋初值的方式确定数组元素的个数(7)以下叙述中错误的是A)C语言源程序经编译后生成后缀为.obj的目标程序B)C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中D)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令(8)以下数组定义中错误的是A)int x[][3]={0};B)int x[2][3]={1,2,3,4,5,6};C)int x[][3]={{1,2,3},{4,5,6}};D)int x[2][]={1,2,3,4,5,6};(9)若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是A)函数的实参和其对应的形参共占同一存储单元B)形参只是形式上的存在,不占用具体存储单元C)同名的实参和形参占同一存储单元D)函数的形参和实参分别占用不同的存储单元(10)有以下程序段int j;float y;char name[50];scanf("%2d%f%s",&j,&y,name);当执行上述程序段,从键盘上输入55566 7777abc后,y的值为A)55566.0 B)566.0 C)7777.0 D)566777.0(11)有以下程序#include<stdio.h>main(){int y=9;for( ; y>0;y--)if(y%3= =0)printf("%d",--y);}程序的运行结果是A)741 B)963 C)852 D)875421 (12) 有以下程序#include<stdio.h>int a=4;int f(int n){int t=0;static int a=5;if(n%2){a=6;t+=a++;}{ a=7;t+=a++;}return t+a++;}void main(){int s=a,i=0;for(;i<2;i++)s+=f(i);printf ("%d\n",s);}程序运行后的输出结果是A)24 B)28 C)32 D)36(13) 要求通过while循环不断读入字符,当读入字母N时结束循环。

c期中考试题库及答案

c期中考试题库及答案

c期中考试题库及答案一、选择题(每题2分,共20分)1. 以下哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. variable-nameD. variable_name答案:B2. 在C语言中,哪个关键字用于声明一个函数?A. intB. functionC. voidD. return答案:C3. C语言中,哪个运算符用于比较两个值是否相等?A. ==B. !=C. =D. <=答案:A4. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. %D. ++答案:A5. 在C语言中,哪个函数用于计算一个数的绝对值?A. abs()B. fabs()C. sqrt()D. pow()答案:A6. C语言中,哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A7. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. strncpy()C. strcat()D. strncat()答案:A8. C语言中,哪个函数用于将整数转换为字符串?A. atoi()B. itoa()C. strtol()D. sprintf()答案:B9. 在C语言中,哪个关键字用于声明一个指针?A. int*B. pointerC. *D. ptr答案:C10. C语言中,哪个函数用于计算一个数的平方根?A. sqrt()B. pow()C. abs()D. log()答案:A二、填空题(每题2分,共20分)1. C语言中,用于声明一个整型变量的关键字是________。

答案:int2. C语言中,用于声明一个浮点型变量的关键字是________。

答案:float 或 double3. C语言中,用于声明一个字符型变量的关键字是________。

答案:char4. C语言中,用于声明一个布尔型变量的关键字是________。

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

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

c语言程序设计期中考试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于声明函数?A. intB. returnC. voidD. function答案:A2. 以下哪个选项是C语言中的合法整型常量?A. 0x12B. 08C. 1.2e3D. 0b1010答案:A3. 若有以下代码段:```cint a = 10, b = 20;swap(a, b);```为了使代码正常工作,函数`swap`的参数应该是什么类型?A. intB. int*C. doubleD. double*答案:B4. 在C语言中,以下哪个运算符用于计算两个数的和?A. +=B. +=C. ||D. &&答案:A5. 下列哪个选项是C语言中的合法浮点数?A. 3.14B. .14C. 3e-2D. 1e答案:C6. 在C语言中,以下哪个关键字用于声明一个结构体?A. structB. unionC. enumD. typedef答案:A7. 以下哪个选项是C语言中的合法字符常量?A. 'a'B. "a"C. 'ab'D. '0'答案:A8. 在C语言中,以下哪个关键字用于声明一个数组?A. arrayB. listC. vectorD. int[]答案:D9. 以下哪个选项是C语言中的合法字符串常量?A. "Hello, World!"B. 'Hello, World!'C. "Hello" "World!"D. 'Hello' 'World!'答案:A10. 在C语言中,以下哪个关键字用于声明一个枚举?A. enumB. listC. setD. map答案:A二、填空题(每题3分,共15分)1. C语言中,用于定义一个空语句的关键字是________。

C语言期中测试题(含答案)

C语言期中测试题(含答案)

一、 填空1.C 语言源程序文件的后缀是 .c 。

2.构造化程序由 顺序构造 、 选择构造 、 循环构造 三种根本构造组成。

3.在C 语言中,用关键字 int 定义根本整型变量,一个根本整型变量系统分配 2 字节,用关键字 float 定义单精度实型变量,一个单精度实型变量系统分配 4 字节,用关键字 double 定义双精度实型变量,一个双精度实型变量系统分配 8 字节。

二、 选择1. 以下选项中正确的实型常量是( A )A .12.B .-20C . 1,000D . 4 5 62.以下选项中不正确的实型常量是〔无正确答案〕A . 2.607E-1B .0.8103e2C . -77.77D . 456e-23. 以下选项中不合法的用户标示符是( C )A. _123 B .A12_1 C . A $ D .Dim4.C 语言中运算对象必须是整型的运算符是( A )A .%B ./C .!D .*5. 假设变量已正确定义并赋值,符合C 语言语法的表达式是( B )A .a=a+7 ;B .a=7+b+c,a++C . int(12.3%4)D .a=a+7=c+b6.下面合法的赋值语句是( C )A .a=b=58B .k=int(a+b)C . a=58,b=58D .--i7.假设变量已正确定义为int ,要给a,b,c 输入数据,正确的输入语句是( D )A .read(a,b,c)B .scanf(“%d%d%d 〞,a,b,c)C .scanf(“%D%D%D 〞,&a,&b,&c) D .scanf(“%d%d%d 〞,&a,&b,&c)8.假设变量a,b,t 已正确定义,要将a 和b 中的数进展交换,以下选项中不正确的语句组是( C )A .a=a+b,b=a-b,a=a-b;B . t=a,a=b,b=t;C .a=t;t=b;b=aD .t=b;b=a;a=t;9.假设有正确定义语句:double x=5.16894;语句printf(“%f\n 〞,(int)(x*1000+0.5)/(double)1000);的输出结果是( D )A .输出格式说明与输出项不匹配,输出无定值B .C .!D .10. 假设有以下程序段:int a=0,b=0,c=0;c=(a-=a-5),(a=b,b+3);printf(“%d,%d,%d\\n 〞,a,b,c);执行后的输出结果是( B )A .3,0,-10B .0,0,5C .-10,3,-10D .3,0,311.以下运算符中优先级别最高的是( A )A . !B .%C .-=D .&&12.为表示关系:z y x ≥≥,应使用的C 语言表达式是( A )A .(x>=y)&&(y>=z)B .(x>=y)AND(y>=x)C .(x>=y>=z)D .(x>=y)&(y>=z)13.设a 、b 和c 都是int 型变量,且a=3,b=4,c=5,那么以下的表达式中值为0的表达式是( D )A.a&&b B.a<=b C.a||b+c&&b-c D.!((a<b)&&!c||1) 14.有以下程序:#include<stdio.h>main(){ int a=2,b=-1,c=2;if(a<b)if(b<0)c=0;elsec+=1;printf(“%d\n〞,c);}程序的运行结果是( C )A.0 B.1 C.2 D.315.有以下程序:#include<stdio.h>main(){ int w=4,x=3,y=2,z=1;printf(“%d\n〞,(w<x?w:z<y?z:x));}程序的运行结果( A )A.1 B.2 C.3 D.416.有以下程序:main(){int a,b,s;scanf(“%d %d〞,&a,&b);s=a;if(a<b)s=b;s*=s;printf(“%d\n〞,s);}假设执行以上程序时从键盘上输入3和4,那么输出结果是( B )A.14 B.16 C.18 D.2017.有以下程序段:y=-1;if(x!=0)if(x>0) y=1;else y=0;其能正确表示的数学函数关系是( C )A .⎪⎩⎪⎨⎧>=<-=)0(1)0(0)0(1x x x yB .⎪⎩⎪⎨⎧>=-<=)0(0)0(1)0(1x x x yC .⎪⎩⎪⎨⎧>=-<=)0(1)0(1)0(0x x x yD .⎪⎩⎪⎨⎧>=<-=)0(0)0(1)0(1x x x y18.假设有定义语句int a, b ;double x ;那么以下选项中正确的选项是( C )A .switch 〔x%2〕B .switch 〔〔int 〕x/2.0){case 0: a++; break; {case 0: a++; break;case 1: b++; break; case 1: b++; break;default : a++; b++; default : a++; b++;} }C .switch 〔〔int 〕x%2〕D .switch 〔〔int 〕〔x 〕%2〕{case 0: a++; break; {case 0.0: a++; break;case 1: b++; break; case 1.0: b++; break;default : a++; b++; default : a++; b++;} }19.有以下程序段:int k,j,s;for(k=2;k<6;k++,k++){s=1;for(j=k;j<6;j++)s+=j;}printf(“%d\n 〞,s);程序段的输出结果是( D )A .9B .1C .11D .1020.有以下程序段:int i,j,m=0;for(i=1;i<=15;i+=4)for(j=3;j<=19;j+=4)m++;printf(“%d\n 〞,m);程序段的输出结果是( C )A .12B .15C .20D .2521.有以下程序段:int n=10;while(n>7){ n--;printf(“%d\n 〞,n);}程序段的输出结果是( B )A.10 B.9 C.10 D.99 8 9 88 7 8 77 622.有以下程序段:int x=3;doprintf(“%3d〞,x-=2);while(!(--x));程序段的输出结果是( C )A.1 B.3 0 C.1 -2 D.死循环23.有以下程序:main(){int i,sum;for(i=1;i<=6;i++)sum+=sum;printf(“%d\n〞,sum;);}程序的输出结果是( C )A..15 B.14 C.不确定D.024.有以下程序:#include<stdio.h>main(){int i;for(i=1;i<=5;i++){if(i%2)printf(“*〞);elsecontinue;printf(“#〞);}pintf(“$\n〞);}程序的输出结果是( A )A.*#*#*#$ B.#*#*#*$ C.*#*#$ D.#*#*$ 25.有以下程序:#include<stdio.h>main(){ int x,i;for(i=1;i<=100;i++){x=i;if(++x%2==0)if(++x%3==0)if(++x%7==0)printf(“%d〞,x);}printf(“\n〞);}程序的输出结果是( A )A.28 70 B.42 84 C.26 68 D.39 81【本文档内容可以自由复制内容或自由编辑修改内容期待你的好评和关注,我们将会做得更好】。

C语言程序设计期中测试(参考)

C语言程序设计期中测试(参考)

C语言程序设计期中测试(参考)C 语言程序设计期中测试题姓名_______ 学号________一、选择题:(单选, 1分/题, 共20分)1. 设有 int x=11; 则表达式 (x++ * 1/3) 的值是A) 3 B) 4 C) 11 D) 122. 下列变量定义中合法的是A) double _a=1-.le-1; B) int b=1+5e2.5; C) long do=3e5; D) float2_and=1-e-3;3. 设 int x=1, y=1; 表达式( !x||y-- )的值是A) 0 B) 1 C) 2 D) –14. 若变量已正确定义并赋值,下面符合C语言语法的表达式是A) a:=b++ B) b=2++ C) int 18.5%3 D) a+=c+b5. C语言中运算对象必须是整型的运算符是A) <= B) / C) = D) %=6. 设有说明语句:char a=’\72’; 则变量aA) 说明不合法 B) 包含2个字符 C) 包含3个字符 D) 包含1个字符7. 以下所列的C语言常量中,错误的是A) 0xFF B )1.2e0.5 C ) 2L D ) '\t'8. 下列选项中,可作为C语言变量名是A) y-3 B ) 4_x C ) include D ) x1..9. 若int a=3; 则执行完表达式a+=a-=a*a后,a的值是A)-3 B )9 C )-12 D )610. 在C语言中,合法的长整型常数是A) 12L B) x496271 C) 324562& D) 216D11. 以下选项中合法的字符常量是A)"B" B) '\182' C) 68 D) ‘\’’12. 以下合法的赋值语句是A) x=y=100 B) d--; C) x+y; D) 3+=x;13. 设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是printf("%d,%d\n",x--,--y);A) 10,3 B) 9,3 C) 9,2 D)10,214. 以下选项中,非法的字符常量是A) '\t' B) '\17' C)"n" D) '\xaa'15. 以下选项中合法的实型常数是A) 5E2.0 B) E-3 C) .2E0 D) 1.3E16. 已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是A) 字符A B) 字符a C) 字符e D) 非法的常量17. 以下选项中,与k=n++完全等价的表达式是_______。

C语言期中机考试卷及答案

C语言期中机考试卷及答案

C语言期中测试(解压缩后运行examstar.exe,密码426008)一、单项选择题(30分,每题3分)每小题的四个选项中只有一个符合题目要求,请将正确选项前字母填在括号中。

1.一个C语言程序执行时总是从【______】开始。

DA. 主程序B. 子程序C. 函数D. 主函数2.下列标识符中,_______是关键字。

CA)Int B)INTC)int D)printf3.下列用户自定义标识符中,_______是正确的。

BA)long B)LongC)data.1 D)while4.以下能正确定义整型变量a、b、c的是_______。

BA)a,b,c; B)int a, b, c;C)float a, b, c; D)int a; b; c;5.下面正确的输入语句是______。

BA)scanf("a=b=%d",&a,&d); B)scanf("%d,%f",&a,&b);C)scanf("%a", a); D)scanf("%f", f);6.下面程序的输出结果是【______】。

B#include "stdio.h"void main(void){int i,sum1=0,sum2=0;for(i=1;i<10; i++)if( i%2==0 ) sum1+=i;else sum2+=i;printf("%d%d\n",sum1,sum2);}A. 5050B. 2025C. 20D. 257.下面程序的输出结果是【______】。

CA. YesB. NoC. NoYesD. YesNo #include "stdio.h"void main(void){char str[]="stdiopidts";int i, n=0;while(str[n])n++;for(i=0;i<n/2;i++)if(str[i]!=str[n-1-i]){printf("No");break;}printf("Yes");}8.完善程序求输入的十个整数中正数的个数及其和、平均值:【______】。

C语言期中考试题目及答案

C语言期中考试题目及答案

一、选择题:【1】在 C 语言中,用户能使用的正确标识符是。

A) 5f B) _for C) struct D) _f.5答案: B分析:标识符只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线;大小写敏感;不能使用关键字;最长 32 个字符。

【2】以下那个是正确的 C 语言常量。

A) 0678 B) '\0101' C) 1.2E3.5 D) 123L答案: D【3】以下对 C 语言源程序有关常识正确的描述是。

A) main 函数必须位于文件的开头B) 每个语句必须单独一行C) 标识符中大小写字母没有区别D) 宏定义#define 部分不一定要放在程序的最开头位置答案: D【4】以下 for 循环的执行次数是。

for(x=0,y=0;(y=123)&&(x<4);x++)A)是无限循环 B)循环次数不定 C) 执行 4 次 D)执行 3 次答案: C分析:若要判断(y=123)&&(x<4)假,因为 y=123 永远为真,所以只需要判断 x<4 为假即可。

【5】对 for(表达式 1;;表达式 3)可理解为。

A) for(表达式 1;0;表达式 3)B) for(表达式 1;1;表达式 3)C) for(表达式 1; 表达式 1;表达式 3)D) for(表达式 1; 表达式 3;表达式 3)答案: B【6】设有程序段int k=10;while(k=0) k=k-1;则下面描述中正确的是。

A) while 循环执行 10 次 B)循环是无限循环C)循环体语句一次也不执行 D)循环体语句执行一次答案: C分析:因为 k=0 为假,所以程序不执行其后的语句。

【7】C 语言中 while 和 do-while 循环的主要区别是。

A) do-while 的循环体至少无条件执行一次B) while 的循环控制条件比 do-while 的循环控制条件严格C) do-while 允许从外部转到循环体内D) do-while 的循环体不能是复合语句答案: A【8】设有: int a=1,b=2,c=3,d=4,m=2,n=2; 执行(m=a>b)&&(n=c>d) 后 n 的值为。

C语言期中考试试卷

C语言期中考试试卷

一、单项选择题(本大题共 20 小题,每题只有一个正确答案,答对一题得 1 分,共 20 分)(1) 下列标识符中,合法的用户标识符为[ ]A) for B) 4d C) f2_G3 D) char(2) 以下选项中合法的字符常量是【】A)"B" B) '\010' C) 68 D) D(3) c语言中要求运算对象都必须为整型的运算符是[ ]A) % B) / C) * D) +(4) 已知ch是字符型变量,则不正确的赋值语句为[ ]A) ch=’a+b’;B)ch=’\0’;C) ch=’7’+’9’;D) ch=65+1;(5) 已知x、y均为整型变量,且x=10,y=3,则以下语句的输出结果是[ ]printf("%d,%d\n",x--,--y);A) 10,3 B) 9,3 C) 9,2 D) 10,2(6)已知x、y、z被定义为int型变量,若要从键盘输入x、y、z的值,正确的输入语句是[ ]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);(7) 设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为[ ]A) 0 B) 1 C)2 D) 3(8) 变量c1,c2,c3均为字符类型,对输入函数scanf(“%c%c%c”,&c1,&c2,&c3),正确的输入格式为。

[ ] A) c1=a,c2=b,c3=c B) a,b,c C) abc D) a b c(9)已知t为int型变量,且进入下面的循环之前t的值为0while( t=l ){ ……}则以下叙述中正确的是[ ]A) 循环控制表达式的值为0 B) 循环控制表达式的值为1C) 循环控制表达式不合法D) 以上说法都不对(10) 以下关于运算符优先顺序的描述中正确的是____. [ ]A)关系运算符<算术运算符<赋值运算符<逻辑与运算符B)逻辑与运算符<关系运算符<算术运算符<赋值运算符C)赋值运算符<逻辑与运算符<关系运算符<算术运算符D)算术运算符<关系运算符<赋值运算符<逻辑与运算符(11) 能正确表示”当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是____ [ ]A)(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)B)(x>=1)||(x<=10)||(x>=200) || (x<=210)C)(x=>1)&&(x<=10) || (x>=200)&&(x<=210)D)(x>=1) || (x<=10) && (x>=200) || (x<=210)(12) 判断char型变量ch是否为大写字母的正确表达式是____. [ ]A)’A’<=ch<=’Z’ B)(ch>=’A’)&(ch<=’Z’)C) (ch>=’A’)&&(ch<=’Z’) D)(‘A’<=ch)AND(‘Z’>=ch)(13) 以下不能对二维数组a进行正确初始化的语句是_____。

C语言期中考试

C语言期中考试

期中考试注意事项:1. 考前请将密封线内填写清楚2. 所有答案请直接答在试卷上3.考试形式:闭卷4. 本试卷共 3大题;满分100分; 考试时间100分钟1.若a为int型变量;则执行以下程序段后的a值是 ..a=5;a=a/=a++;A.2 B.1 C.40 D.32.以下程序段的执行结果是 ..Int x=-3;Do {printf“%d\n”;x++;} whilex;A.-3 B.-2 C.死循环 D.-3-2-13.若a、b、c均为int型变量;则执行以下程序段后的输出结果是 ..b=a=10;a+5;c=10;printf“a=%d;b=%d;c=%d\n”;a;b;c;c=a=10;b=5;a+b;printf“a=%d;b=%d;c=%d\n”;a;b;c;A.a=10; b=15; c=10 B.a=10; b=10; c=10a=10; b=5; c=10 a=10; b=5; c=10C.a=10; b=10; c=10 D.a=10; b=10; c=10a=10; b=5; c=15 a=10; b=5; c=54.若a1;a2;a3;a4均为char类型变量;则执行以下程序段后的输出结果是 ..a1=’1’;a2=’2’;a3=’3’;a4=’4’;printf“%1c\n”;a1;printf“%2c\n”;a2;printf“%3c\n”;a3;printf“%4c\n”;a4;A.1 B.1 C.1 D.输出格式的描述符不正确2 2 023 3 0034 4 00045.逻辑运算符两侧运算对象的数据 ..A.只能是0或1 B.只能是0或非0正数C.只能是整型或字符型数据 D.可以是任何类型的数据6.设i;j和k是int型变量;且i=3;j=4;k=5;则以下值为0的表达式是 ..A.’i’ && ‘j’ B.i<=jC.i || j + k && j - k D. i<j && k || 17.若希望当num的值为奇数时;表达式的值为“真”;num的值为偶数时;表达式的值为“假”..则以下不能满足要求的表达式是 ..A.num % 2 = = 1 B. num%2= =0 C.num%2 D.num%28.为了避免在嵌套的条件语句if-else中产生二义性;C语言规定:else子句总是与 ..A.缩排位置相同的if配对B.其之前最近而且不带else的if配对C.其之前最近的if配对 D.第一个if配对9.语句whiley;中的表达式y等价于 ..A.y= =0 B.y=1 C.y=0 D.y= =110.设x、y均为int类型变量;而且x值为100;则关于以下for循环的正确判断是 ..Fory=100;x=y;++x;y++Printf“\n”;A.循环体只执行一次 B.是无限循环C.循环体一次都不执行 D.for语句中存在语法错误11.下列程序中是死循环的是 ..A.int n=1; B.int n=1;Whilen do {n--;} whilen;n++;C.int n=1; D.forn=5;n<1;;Do {n++;} whilen;12.以下程序段的执行结果是 ..Int a;b;Fora=1;a<5;a+=2{ forb=1;b<5;b++printf“%2d”;ab;if b= =5 printf“\n”;}A.1 2 3 4 B.1 2 3 4 C.2 3 4 6 9 12 D.2 3 43 6 9 12 6 9 12 15 6 9 12 10 15 20 13.以下对一维数组a的正确说明是 ..A.char a10; B.int a ;C.int k=5;ak; D.char a ={‘a’;’b’;’b’}; 14.若有说明语句:int a24;;则对a数组元素的正确引用是 ..A.a03 B.a04 C.a22 D.a22+115.若有说明语句:int a 3={1;2;3;4;5;6;7;8};;则a数组的行数为 ..A.3 B.2 C.无确定值 D.116.判断字符串str1是否大于字符串str2;应当使用 ..A.if str1>str2 B.if strcmpstr1;str2C.if strcmpstr2;str1>0 D.if strcmpstr1;str2>017.若有语句:char s110;s210={“books”};;则能将字符串books赋给数组s1的正确语句是 ..A.s1={“books”};B.strcpys1;s2; C.s1=s2; D.strcpys2;s1; 18.若有以下程序段form=1;m<=100;m++{ scanf“%d”;&y;if y<0 continue;printf“%3d”;m;}正确的描述是 ..A.当y<0时整个循环结束 B.y>=0时什么也不输出C.printf函数永远也不执行D.最多允许输出100个非负整数19.以下正确的函数说明是 ..A.int funint a;b B.float funint a ; int bC.double fun D.int funchar a 20.以下正确的说法是 ..A.实参和与其对应的形参各占用独立的存贮单元B.实参和与其对应的形参共用一个存贮单元C.只有当实参和与其对应的形参同名时才共用存贮单元D.形参是虚拟的;不占用存贮单元21.C语言允许函数值类型的缺省定义;此时该函数值隐含的类型是 ..A.float型B.int型 C.long型 D.double型22.以下正确的描述是 ..A.函数的定义可以嵌套;但函数的调用不可以嵌套B.函数的定义不可以嵌套;但函数的调用可以嵌套C.函数的定义和调用均不可以嵌套D.函数的定义和调用均可以嵌套23.数组元素ai是该数组中第个元素..A.1 B.i C.i+1 D.i-124.执行下面程序段后;x的值是 ..Int x;Printf“%d\n”;x=35;x+5;A.10 B.15 C.20 D.525.判断char型变量c1是否为大写字母的正确表达式是 ..A.’A’<=c1<=’Z’ B.c1>=’A’ & c1<=’Z’ C.c1>=’A’ && c1<=’Z’ D.‘A’<=c1 AND ‘Z’>=c126.表达式3>5||6<2的值是 ..A.0 B.1 C.3 D.527.以下程序的输出结果是 ..Mian{ int x=2;y=-1;z=2;Ifx<yIfy<0 z=0;Else z+=1;Printf“%d\n”;z;}A.3 B.2 C.1 D.028.设有说明:int a=1;b=0;则执行以下语句后的输出结果是 ..Switcha{ case 1:switchb{ case 0:printf“0\n”;break;case 1:printf“1\n”;break;}case 2: printf“2\n”;break;}A.0 B.02C.0 D.switch语句中存在语法错误1229.下面程序的运行结果是 ..Main{ int m=0;while m<=2{m++;printf“%d\n”;m;}}A.1 B.1 C.1 D.12 2 233430.下面程序段的运行结果是 ..Char x5={‘a’;’b’;’\0’;’c’;’\0’};Printf“%s”;x;A.’a’’b’B.ab C.ab c D.abc二、填空题..每题2分;共20分1.下面程序段是找出整数的所有因子;请填空..Scanf“%d”;&x;I=1;For ; i<=x ;{ifx%I==0 printf“%3d”;I;I++;}2.下面程序的功能是计算1-3+5-7+…-99+101的值;请填空..Main{ int i;t=1;s=0;fori=1;i<=101;i+=2{ t=ti ; s=s+t; t=-t/i ;}printf“%d\n”;s;}3.如果运行以下程序段时输入字符为“t”;则程序段的运行结果是 T ..Main{ char c1;scanf“%c”;&c1;c1=c1>=’A’ && c1<=’Z’c1+32:c1;c1=c1>=’a’ && c1<=’z’c1-32:c1;printf“%c”;c1;}4.设x和y均为int型变量;则以下for循环中的scanf语句最多可执行的次数是 3 ..Forx=0;y=0;y=123 && x<3;x++Scanf“%d”;&y;5.下面程序的运行结果是..include<stdio.h>main{ int i;j;fori=4;i>=1;i--{ forj=1;j<=i;j++ putchar‘’;forj=1;j<=4-i;j++ putchar‘’;putchar‘\n’;}}6.下面程序可求出矩阵a的两条对角线上的元素之和;请填空..Main{int a33={1;3;6;7;9;11;14;15;17};sum1=0;sum2=0;i;j;fori=0;i<3;i++forj=0;j<3;j++ifi= =j sum1=sum1+aij;fori=0;i<3;i++for j=2 ; j>=0 ;j--ifi+j= =2 sum2=sum2+aij;printf“sum1=%d;sum2=%d\n”;sum1;sum2;}7.以下程序的输出结果是 1110 ..Main{int x6;a=0;b;c=14;do{ xa=c%2;a++;c=c/2;} whilec>=1;forb=a-1;b>=0;b--printf“%d”;xb;printf“\n”;}8.输入一个字符;如果它是一个大写字母;则把它变成小写字母;如果它是一个小写字母;则把它变成大写字母;其他字符不变..请填空.. Main{ char ch1;scanf“%c”;&ch1;if ch1>=’A’ && ch1<=’Z’ ch1=ch1+32;else if ch1>=’a’ && ch1<=’z’ ch1=ch1-32 ;printf“%c”;ch1;}9.以下程序的功能是判断输入的年份是否闰年;请填空..Main{ int year;yes;scanf“%d”;&year;if year%400= =0 yes=1;else if year % 4==0 && year % 100=0 yes=1;else yes=0 ;ifyes printf“%d is”;year;else printf“%d is not”;year;printf“a leap year.\n”;}10.下面程序的运行结果是 1 1 2 35 8 13 21.. 34 55Main { int I;f10;F0=f1=1; 2 3 5 8 13 21 34 55 Fori=2;i<10;i++ Fi=fi-2+fi-1; Fori=0;i<10;i++{ifi%4==0 printf “\n ”;Printf “%3d ”;fi; }}三、编程题35分..1.从键盘输入10个整数;存放在数组中;要求对这10个数按大到小进行排序后输出..10分2..设有一分数序列:, (13)21,813,35,23,12编程求出这个数列的前10项之和..10分 3.输出杨辉三角形要求输出10行..15分 11 1 12 1 13 3 1 14 6 4 11 5 10 10 5 1……。

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

二、填空题:(10分)
1、在“* != + = ”以运算符中,优先级最低的运算符 是 _____________ 。 2、设ch是 char型变量,其值为 'A',则表达式ch=(ch>='A'&& ch<='Z')? (ch+32):ch 的值是__________。 3、若有说明和语句:int a=25,b=60;b=++a;则b的值 是__________ 。 4、语句的种类有:表达式语句、___________、复合语句、函数语句、 控制语句五种。 5、若k为int型变量且赋值11,请写出运算k++后表达式的值 。 6、将以下表达式max=(a>b)?a:b;写成if-else语句是: ___________________________________。 7、复合语句是用一对 界定的语句块。 8、已知a,b,c是一个十进制数的百位,十位,个位,则该数的表达式是 。 9、一个表达式要构成一个C语句,必须 。 10、scanf()输入数据时,遇到下列情况时该数据认为结束: , 回车,TAB键。
四、写出下列程序的结果:(20分)
1、main() {int x=17,y=26; printf ("%d",y/=(x%=6));} 该程序段的输出结果是________________。 2、main() {float x=2.0,y; if(x<0.0)y=0.0; else if(x<10.0)y=1.0/x; else y=1.0; printf("%f\n",y);} 该程序的输出结果是________________。 3、 main() {int k=8; switch(k) {case 9:k+=1; case 10:k+=1; case 11:k+=1;break; default:k+=1;} printf("%d\n",k);} 该程序的输出结果是________________。
3、编程序,已知一圆柱体的底面半径为2.5,高为5。编写程序求圆
柱体的体积。(圆柱体的体积公式为:底面积*高)(6分)
C语言期末考试试卷
姓名:
一、单项选择题(40分)
1、C语言中用于结构化程序设计的3种基本结构是 ( ) A)顺序结构、选择结构、循环结构 B)if,switch,break C)if,while,do-while D)if,else,continue 2、C语言中最简单的数据类型包括 ( ) A)整型、实型、逻辑型 B)整型、实型、字符型 C)整型、字符型、逻辑型 D)字符型、实型、逻辑型 3、C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一 个字符 ( ) A)必须为字母 B)必须为下划线 C)必须为字母或下划线 D)可以是字母,数字和下划 线中任一字符 4、下列数据中,不合法的C语言实型数据的是 ( ) A)0.123 B)123e3 C)2.1e3.5 D)789.0 5、若有说明语句:char c='\72';则变量c ( ) A)包含1个字符 B)包含2个字符 C)包含3个字符 D)说明不合法,c的值不确定 6、若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int) (x+y)%2/4的值是( ) A)2.500000 B)2.750000 C)3.500000 D)0.000000 7、设变量a是int型,f是float型,i是double型,则表达式10+′a′ +i*f值的数据类型为( ) A)int B)float C)double D)不确定 8、设有int x=11;则表达式(x++*1/3)的值是 ( ) A)3 B)4 C)11 D)12 9、已知int a=6; 则执行a+=a-=a*a;语句后,a的值为 ( ) A)36 B)0 C)-24 D)-60
语法错误 18、C语言中 while 和do-while循环的主要区别是 ( ) A)do-while的循环体至少无条件执行一次 B)while的循环控制条件比do-while的循环控制条件更严格 C)do-while允许从外部转到循环体内 D)do-while 的循环体不能是复合语句 19、对于输入函数调用语句scanf(“a=%d,c=%f”,&a,&c);如果要求输 入a的值为4,c的值为56.8,键盘输入数据的格式是 ( ) A、4 56.8 B、4,56.8 C、a=4 ,56.8 D、a=4,c=56.8 20、有以下程序,如果从键盘输入字符D,程序的输出结果是 ( ) #include <stdio.h> Main() {putchar(getchar()+32); } A、D B、E C、b D、d
三、判断题(10分)
1、main函数必须写在一个C程序的最前面。 ( ) 2、.C程序的注释不能是中文文字信息。 ( )
3、%运算符要求运算数必须是整数。 ( ) 4、C语言不允许混合类型数据间进行运算。 ( ) 5、switch语句的case表达式必须是常量表达式。 ( ) 6、switch语句的表达式与case表达式的类型必须一致。 ( ) 7、do-while循环的while后的分号可以省略。 ( ) 8、在C程序中,每行中只能写一条语句。 ( ) 9、在C程序中,逗号运算符的优先级最低。 ( ) 10、int,char和short三种类型数据在内存中所占用的字节数是任意 的。 ( )
4、main() { int n1,n2; scanf("%d",&n2); while(n2!=0) { n1=n2%10; n2=n2/10; printf("%d",n1); } } 如果从键盘上输入1298;该程序的输出结果是________________。 5、main ( ) { int k=1,n=263 ; do { k*= n%10 ; n/=10 ; } while (n) ; printf(“%d\n”,k); } 该程序的输出结果是________________。
五、编写程序:(20分)
1、编程序,用scanf()函数读入一个字母赋给变量ch1,如果变
量ch1的值是大写字母,则将它转换成小写字母,如果变量ch1 的值是小写字母,则按原样输出。(用iC”,要求每打印一遍之后要换行。 (用do-while语句完成)(8分)
10、设x和y均为int型变量,语句组x+=y;y=x-y;x-=y;的功能是 ( ) A)、 把x和y从小到大排列 B)、 把x和y从大到小排列 C)、 无确定结果 D)、 交换x和y中的值 11、在C程序中,判逻辑值时,用“非0”表示逻辑值“真”, 又 用“0”表示逻辑值“假”。 在求逻辑值时,用()表示逻辑表达式值 为“真”,又用()表示逻辑表达式值为“假”。( ) A)1 0 B)0 1 C)非0 非0 D)1 1 12、已知int x=6,y=2,z;则执行表达式z=x=x>y后,变量z的值为 ( ) A)0 B)1 C)4 D)5 13、能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是 ( ) A)a>=10 or a<=0 B)a>=0|a<=10 C)a>=10 &&a<=0 D) a>=10‖a<=0 14、有如下程序段 int a=14,b=15,x; char c=′A′; x=(a&&b)&&(c<′B′); 执行该程序段后,x的值为 ( ) A)ture B)false C)0 D)1 15、若运行时给变量x输入12,则以下程序的运行结果是 ( ) main() {int x,y; scanf("%d",&x); y=x>12?x+10:x-12; printf("%d\n",y); } A)0 B)22 C)12 D)10 16、已知 int t=0; while(t=1) {...} 则以下叙述正确的是 ( ) A)循环控制表达式的值为0 B)循环控制表达式的值为1 C)循环控制表达式不合法 D)以上说法都不对 17、以下程序段的描述,正确的是 ( ) x=-1; do {x=x*x;} while(!x); A)是死循环 B)循环执行两次 C)循环执行一次 D)有
相关文档
最新文档