文档库 最新最全的文档下载
当前位置:文档库 › 桂林电子科技大学10年c语言试卷B

桂林电子科技大学10年c语言试卷B

桂林电子科技大学10年c语言试卷B
桂林电子科技大学10年c语言试卷B

桂林电子科技大学试卷

2009-2010 学年第 2 学期课号

课程名称c语言程序设计A(B卷; 开、闭卷)适用班级(或年级、专业)7院09级

考试时间120 分钟班级学号姓名

题号一二三四五六七八九十成绩满分

得分

评卷人

一、单选题(每空2分,共50分)

1、以下所列的C语言常量中,错误的是()。

A) 0xFF B) 1.2e0.5 C) 2L D) '\72'

2、以下4组用户定义标识符中,全部合法的一组是()。

A) _main B) If C) txt D) int

Enclude -max REAL k_2

sin turbo 3COM _001

3、若有定义:int a=8, b=5, c;执行语句c = a/b+0.4 ;后,c的值为()。

A) 1.4 B) 1 C) 2.0 D) 2

4、以下程序中,while 循环的次数是()。

#include

void main(void)

{ int i = 0;

while (i<10) {

if (i<1) continue;

if (i==5) break;

i++;

}

}

A) 1 B) 死循环,不能确定次数C) 6 D) 10

5、以下能正确定义字符串的语句是()。

A) char str[]={′\064′};B) char str="kx43";

C) char str=";D) char str[]="\0";

6、以下数组定义中错误的是()。

A) int x[][3]={0};

B) int x[2][3]={{l,2},{3,4},{5,6}};

C) int x[][3]={{l,2,3},{4,5,6}};

D) int x[2][3]={l,2,3,4,5,6};

7、以下程序的输出结果是( )。 #include void main(void) { int a = 0, i;

for (i=1; i<5; i++) {

switch (i) { case 0: case 3: a += 2; case 1: case 2: a += 3; default: a += 5; }

}

printf(“%d\n ”, a);

}

A) 31 B) 13 C) 10 D) 20

8、执行以下程序后的输出结果是( ) #include void main(void) {

char a[]=”abc\0abc ”; printf(“%s ”, a);

}

A) abc\0abc B) abc\ C) abc\0 D) abc

9、若有语句:char *line[5];,以下叙述中正确的是( )。

A)定义line 是一个数组,每个数组元素是一个基类型为char 的指针变量 B)定义line 是一个指针变量,该变量可以指向一个长度为5的字符型数组 C)定义line 是一个指针数组,语句中的*号是指针运算符。 D)定义line 是一个指向字符型函数的指针

10、有以下程序段

typedef struct NODE

{ int num; struct NODE *next; } OLD;

以下叙述中正确的是( )。 A)以上的说明形式非法 B)NODE 是一个结构体类型 C)OLD 是一个结构体类型 D)OLD 是一个结构体变量

11、 设有定义:float a=2,b=4,h=3;,以下C 语言表达式与代数式

h b a )(2

1 计算结果不相

符的是()。

A) (a+b) *h/2 B) (1/2)*(a+b) *h C) (a+b) *h*1/2 D) h/2*(a+b)

12、有以下程序

main( )

{

int x=102,y=012;

printf(“%2d,%2d\n”x,y);

}

执行后输出结果是()。

A) 10,01 B) 02,12 C) 102,10 D) 02,10

13、有以下程序

main()

{ int m,n,p;

scanf("m=%dn=%dp=%d",&m,&n,&p);

printf("%d%d%d\n",m,n,p);

}

若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是()。

A) m=123n=456p=789

B) m=123 n=456 p=789

C) m=123,n=456,p=789

D) 123 456 789

14、函数调用:strcat(strcpy(str1,str2),str3)的功能是()。

A) 将串str1复制到串str2中后再连接到串str3之后

B) 将串str1连接到串str2之后再复制到串str3之后

C) 将串str2复制到串str1中后再将串str3连接到串str1之后

D) 将串str2连接到串str1之后再将串str1复制到串str3中

15、设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句

if (a

if(c==d) y=0;

else y=1;

该语句所表示的含义是()。

16、若有以下说明和语句,int c[4][5], (*p)[5];p=c;能正确引用c数组元素的是()。

A) p+1 B) *(p+3) C) *(p+1)+3 D) *(p[0]+2])

17、有以下程序

void swap1(int c[])

{ int t;

t=c[0];c[0]=c[1];c[1]=t;

}

void swap2(int c0,int c1)

{ int t;

t=c0;c0=c1;c1=t;

}

main( )

{ int a[2]={3,5},b[2]={3,5};

swap1(a) ; swap2(b[0],b[1]);

printf(“%d %d %d %d\n”,a[0],a[1],b[0],b[1]);

}

其输出结果是()。

A) 5 3 5 3 B) 5 3 3 5 C) 3 5 3 5 D) 3 5 5 3

18、有以下程序

int f(int b[][4])

{ int i,j,s=0;

for(j=0;j<4;j++)

{ i=j;

if(i>2) i=3-j;

s+=b[i][j];

}

return s;

}

main( )

{ int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};

printf(“%d\n”,f(a) );

}

执行后的输出结果是()。

A)12 B) 11 C) 18 D) 16

19、有以下定义

#include

char a[10], *b=a;

不能给数组a输入字符串的语句是()。

A)gets(a) B) gets(a[0]) C) gets(&a[0]) D) gets(b)

20、有以下程序

main( )

{ char *p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”};

printf(“%d\n”,strlen(p[4]));

}

执行后输出结果是()。

A) 2 B) 3 C) 4 D) 5

21、下面程序的功能是输出以下形式的金字塔图案是:()。

*

***

*****

*******

main( )

{ int i,j;

for(i=1;i<=4;i++)

{ for(j=1;j<=4-i;j++) printf(““);

for(j=1;j<=_______;j++) printf(“*”);

printf(“\n”);

}

}

在下划线处应填入的是

A)i B) 2*i-1 C) 2*i+1 D) i+2

22、有以下程序

struct STU

{ char name[10]; int num; float TotalScore; };

void f(struct STU *p)

{ struct STU s[2]={{"SunDan",20044,550},{"Penghua",20045,537}}, *q=s;

++p ; ++q; *p=*q;

}

main()

{ struct STU s[3]={{"Y angSan",20041,703},{"LiSiGuo",20042,580}};

f(s);

printf("%s %d %3.0f\n", s[1].name, s[1].num, s[1].TotalScore);

}

程序运行后的输出结果是()。

A) SunDan 20044 550 B) Penghua 20045 537

C) LiSiGuo 20042 580 D) SunDan 20041 703

23、以下程序的功能是进行位运算

main()

{ unsigned char a, b;

a=7^3; b= ~4 & 3;

printf("%d %d\n",a,b);

}

程序运行后的输出结果是()。

A)4 3 B)7 3 C) 7 0 D) 4 0

24、有以下程序

#include “stdio.h”

void WriteStr(char *fn,char *str)

{ FILE *fp;

fp=fopen(fn,"w");fputs(str,fp);fclose(fp);

}

main()

{

WriteStr("t1.dat","start");

WriteStr("t1.dat","end");

}

程序运行后,文件t1.dat中的内容是()。

A)start B)end C)startend D)endrt

25、设有定义语句

int x[6]={2,4,6,8,5,7},*p=x, i;

要求依次输出x数组6个元素中的值,不能完成此操作的语句是()。

A) for(i=0;i<6;i++) printf("-",*(p++));

B) for(i=0;i<6;i++) printf("-",*(p+i));

C) for(i=0;i<6;i++) printf("-",*p++);

D) for(i=0;i<6;i++) printf("-",(*p)++);

二、程序填空(每空2分,共36分)

1、求1!+2!+3!+。。。+10!

#include

void main(void)

{

float s = 0, t = 1;

int n;

for (n=1; ①; n++) {

②;

③;

}

printf(“1!+2!+3!+。。。+10!=%f”, s);

}

2、以下程序是用来统计从键盘输入的一个正整数中各位数字中零的个数,并求各位数字中

最大者。例如:1080其零的个数是2,各位数字中最大者是8。

#include

void main(void)

{

unsigned long num, max, t;

int count;

count=max=0;

scanf("%ld", &num);

do {

t= ① ;

if(t==0) ++count;

else

if(max

num/=10;

} while(num);

printf("count=%d,max=%ld\n", count, max);

}

3、下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数。

#include

void main(void)

{

int i, j;

for(i=0;①; i++) {

j = i*10+6;

if ( ②) continue;

printf("%d",j);

}

}

4、定义compare(char *s1, char *s2)函数,以实现比较两个字符串大小的功能:若字符串s1>s2,返回一个正数,若字符串s1〈s2,返回一个负数,若相等,返回0。

#include

int compare(char *s1, char *s2)

{

while(*s1&&*s2&& ① ) {

s1++;

② ;

}

return ③ ;

}

void main(void)

{

printf("%d\n", compare("abCd", "abc");

}

5、函数fun的功能是:使字符串str按逆序存放。

void fun (char str[])

{

char m; int i, j;

for (i=0, j=strlen(str); i< ①; i++, j--) {

m = str[i];

str[i] = ②;

str[j-1] = m;

}

printf("%s\n",str);

}

6、以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低

于平均分的学生成绩,用输入负数结束输入。请填空。

#include

void main( void)

{

float x[1000],sum=0.0,ave,a;

int n=0,i;

printf("Enter mark:\n");

scanf("%f",&a);

while (a>=0.0&& n<1000) {

sum+ ①;

x[n]= ②;

n++;scanf("%f",&a);

}

ave= ③;

printf("Output:\n");

printf("ave=%f\n",ave);

for (i=0;i

if ( ④) printf ("%f\n",x[i]);

}

7、以下fun函数的功能是:累加数组元素中的值.n为数组中元素的个数, 累加的和值放入x

所指的存储单元中。

void fun(int b[ ],int n, int *x)

{

int k, r=0;

for (k=0; k

②= r;

}

三、阅读程序,写出程序的输出结果(1,2每题3分,3,4每题4分,共14分)

1、#include

int fun(int x, int y, int *cp, int *dp)

{

*cp=x+y; *dp=x-y;

}

void main(void)

{

int a, b, c, d;

a=30; b=50;

fun(a, b, &c, &d);

printf("%d, %d\n", c, d);

}

2、#include

void main(void)

{

int array[10] = {1, 2, 4, 5, 6, 0, 0, 0, 0, 0}, i;

printf("\n");

for (i=0; i<10; i++) printf("%3d ", array[i]);

printf("\n");

for (i=9; i>=2; i--) array[i] = array[i-1];

array[2] = 3;

for (i=0; i<10; i++) printf("%3d ", array[i]);

printf("\n");

3、include

void f(int c)

{ int a=0;

static int b=0;

a++;

b++;

printf("%d: a=%d, b=%d\n", c, a, b);

}

void main(void)

{ int i;

for (i=1; i<=3; i++) f( i );

}

4、#include

struct stu {

int num;

char name[10];

int age;

};

void fun(struct stu *p)

{

printf("%s\n",(*p).name);

}

void main(void)

{

struct stu students[3]={ {9801,"Zhang",20}, {9802,"Wang",19}, {9803,"Zhao",18} };

fun(students+2);

}

C语言循环习题答案

循环习题集锦 一.选择题 1.for(i=0;i<10;i++);结束后,i的值是;(10) A 9 B 10 C 11 D 12 2.下面程序的循环次数是:(D) int k=0; while(k<10) {if(k<1) continue; if(k==5) break; k++; } A. 5 B 6 C 4 D 死循环,不能确定循环次数3.下面程序的输出结果是(10) main() { int s,k; for(s=1,k=2;k<5;k++) s+=k; printf(“%d\n”,s); } A 1 B 9 C 10 D 15 4.要使下面程序输出10个整数,则在下画线处填入正确的数是:(c)

for(i=0;i<= ;) printf(“%d\n”,i+=2); A 9 B 10 C 18 D 20 5.运行下面程序:(B) main() { int i=10,j=0; do { j=j+i; i--; }while(i>5); printf(“%d\n”,j); } 输出结果是: A 45 B 40 C 34 D 55 6.运行下面程序 #include “stdio.h” main() { int k=0,a=1; while(k<10) { for( ; ;) { if((k%10)==0)

break; else k--; } k+=11; a+=k; } printf(“%d %d\n”,k,a); } 则输出的结果是(C) A 21 32 B 21 33 C 11 12 D 10 11 7.以下叙述正确的是:(D) A.do---while语句构成的循环不能用其他语句构成的循环来代替。B.do---while语句构成的循环只能用break语句退出。 C.用do---while语句构成的循环,在while 后的表达式为非零时结束循环。 D.用do---while语句构成的循环,在while后的表达式为零时结束循环。 8.有如下程序: main() { int x=3; do{

c语言试题及答案

1、以下正确的说法是( B ) (A) 用户若需要调用标准库函数,调用前必须重新定义 (B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 (C) 系统根本不允许用户重新定义标准库函数 (D) 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 2、以下正确的函数声明形式是( A ) (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); 3、以下正确的函数形式是( D ) (A) double fun(int x, int y) { z=x+y; return z;} (B) fun(int x,y) { int z; return z;} (C) fun(x,y) { int x,y; double z; z=x+y; return z;} (D) double fun(int x, int y) { double z; z=x+y; return z;} 4、以下正确的说法是( A ) 在C语言中 (A) 实参和与其对应的形参各占用独立的存储单元 (B) 实参和与其对应的形参共占用一个存储单元 (C) 只有当实参和与其对应的形参同名时才共占用存储单元 (D) 形参是虚拟的,不占用存储单元 5、若调用一个函数,且此函数中没有return语句,则正确的说法是( A ) 该函数 (A) 没有返回值 (B) 返回若干个系统默认值 (C) 能返回一个用户所希望的函数值 (D) 返回一个不确定的值 6、以下不正确的说法是( B ) C语言规定 (A) 实参可以是常量、变量和表达式 (B) 形参可以是常量、变量和表达式 (C) 实参可以为任意类型 (D) 形参应与其对应的实参类型一致 7、以下正确的说法是( C ) (A) 定义函数时,形参的类型说明可以放在函数体内 (B) return后边的值不能为表达式 (C) 如果函数值的类型与返回值类型不一致,以函数值类型为准 (D) 如果形参与实参的类型不一致,以实参类型为准 8、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( B ) (A) 地址传递 (B) 单向值传递 (C) 由实参传给形参,再由形参传回给实参 (D) 由用户指定传递方式

桂林电子科技大学单片机试卷

桂林电子科技大学信息科技学院试卷 2009-2010 学年第 1 学期课号 课程名称单片机原理与应用技术( A卷; 笔试, 闭卷)适用班级(或年级、专业) 07级电信、信息 一、单项选择题(每小题3分,共45分) 1、 - 10的补码为()。 A: F5H B:F6H C:0AH D:0BH 2、单片机复位后的SP与P0的内容是()。 A:SP=00H,P0=00H B: SP=00H,P0=FFH C:SP=07H,P0=00H D:SP=07H,P0=FFH 3、单片机中WR的功能是选通是()。 A:片外数据RAM B:片内数据RAM C:片外程序ROM D:片内程序ROM 4、在下列指令中,正确的MCS-51单片机指令是()。 A:INC C B: ADD A,B C:SUB A , R2 D:MOVX @R2, A 5、能同时将TF0清零的跳转指令是()。 A:JB TF0,LOOP B:JBC TF0,LOOP C:JNB TF0,LOOP D:JZ LOOP 6、当R0的地址为10H时,PSW中的RS1、RS0两位是()。 A:00 B:01 C:10 D:11 7、片内没有上拉电阻的并口是()。 A:P3 B:P2 C:P1 D:P0 8、外部中断1的中断服务程序入口地址是()。 A:0003H B:000BH C:0013H D:0023H 9、用12MHz晶体时,T1做一次定时的最长时间为()。 A:256 μS B:512 μS C: 65536μS D:131072 μS 10、在串口控制寄存器SCON中,REN是()。

A:串行接收中断标志位B:串行接收允许位 C:串行发送中断标志位D:串行发送允许位 11、定时器T1的溢出中断标志是()。 A:IT1 B:TI C:TF1 D:IE1 12、EOC信号在ADC0809中起到的作用是() A.启动AD转换 C. ADC0809的片选信号 B. AD转换结束标志 D. 不能确定 13、已知(00H)= 06H, (01H) = 08H, 有这样的定义char data *p; 其中p = 0x01;则*p = () A.00H C.01H B.06H D.08H 14、已知C语言程序 p = 0x30; *p = 0x48与之等价的汇编语言程序为() A.MOV 30H,#48H C.MOV 30H,48H B.MOV 30H,#48 D.MOV 30H,48 15、DAC0832的工作方式不包括以下哪一种() A.直通C.单缓冲 B.双缓冲D.双极性 二、阅读程序填空(每小题5分,共25分) 1、设PSW=00H, R0=49H、B=0EDH,问:执行下列程序后PSW= ?R0= ?B= ? MOV SP, #6FH PUSH 0F0H PUSH 00H PUSH PSW POP PSW POP 0F0H POP 00H 2、分别写出若A=57H,执行下列程序后A= ?若A=0F2H, 执行下列程序后 A= ? CJNE A, #80H , LOOP1 ;

c语言期末测试题附答案

c语言期末测试题附答 案 集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

课程代码:A100002 座位号: 《计算机技术基础(C 语言)》试卷A 姓名: 学号: 专业: 学院: 班级: 20 年 月 日 第一 部分 选择题(共 30 分) 一、单项选择题(本大题共 15 小题,每题只有一个正确答 案,答对一题得 2 分,共 30 分) 1、以下关于C 语言标识符的描述中,正确的是 【 】。 A )标 识符可以由汉字组成 B )标识符只能以字母开头 C )关键字可以作为用户标识符 D )Area 与area 是不同的标识符 2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【 】。 int i,j,k; scanf(“%d,%3d%d”,&i,&j,&k); printf(“%d,%d,%d \n”,i,j,k); 3、判断char 类型的变量c1是否为数字字符的正确表达式为 【 】。 A) (c1>=0)&&(c1<=9) B) (c1>=’0’)&&(c1<=’9’) C) ’0’<=c1<=’9’ D) (c1>=’0’)||(c1<=’9’) 4、若有语句int a=1,b=2,c=3;则以下值为0的表达式是 【 】。 A )’a’&&’b’ B )a<=b C )((a>b)||(b0;i--);后,变量i 的值为 【 】。 A )10 B )9 C )0 D )1 8、若有int *p1, *p2,k; 不正确的语句是 【 】 A. p1=&k B. p2=p1 C. *p1=k+12 D. k=p1+p2 9、在函数中未指定存储类别的局部变量,其隐含的存储类别是 【 】

C语言循环例题

1. //输出a和b之间的所有素数, 10个素数为一行输出 #include #include #include int panDuanSuShu(int x) //判断x是否是素数 { int i,m,flag; //flag为1表示是素数,flag为0表示不是素数 m=(int)sqrt(x); if(x==2) { flag=1;} else { for(i=2;i<=m;i++) { if(x%i==0) { flag=0; break; } } if(i>m) { flag=1; } } return flag; } int shuChuSuShu(int a,int b) { int i,k=0;//i是循环变量,k表示已经输出了k个素数 for(i=a;i<=b;i++) { if(panDuanSuShu(i)==1) { printf("%6d",i); k++; if(k%10==0) { printf("\n");} } } printf("\n"); return k; } int main() { int a,b,t;

while(a<2||b<2) { printf("重新输入n和m:"); scanf("%d%d",&a,&b); } if(a>b) { t=a;a=b;b=t; } printf("%d和%d之间共有%d个素数",a,b,shuChuSuShu(a,b)); printf("\n\n"); return 0; } 2. //用户输入2个数,输出这2个数之间所有的超素数 //超素数(质数)的概念:7193是素数,719是素数,71是素数,7是素数,则7193是素数#include #include #include int isPrime(int n)//判断某数是否是素数 { int i,f,m=(int)sqrt(n); if(n==1) f=0; else { for(i=2;i<=m;i++) { if(n%i==0) break; } if(i>m) f=1; else f=0; } return f; } int supperPrime(int n)//判断某数是否是超素数 { int t=n; while(t>0) { if(isPrime(t)==1) t=t/10; else break; }

C语言程序设计试卷含答案

说明:请将单项选择题(1~50空)的正确答案涂写考试答题卡,将填空(51~75空)等文字题按【】中的序号写入下面文字答题卡,否则不得分。 二、阅读程序题文字答题卡:(每空2分,共24分) 三、完善程序填空题文字答题卡:(每空2分,共26分) 一、单项选择题(每空1分,共50分) 请将正确答案按【】中的序号写入答题卡,否则不得分。 1.在C语言中,一条语句以【】字符作为结束符。

A),B);C).D)无符号2.以下4组标识符中,能作为变量名使用的是【】。 A)age,struct,s1 B)2A,b_3,main C)ELSE,a[2],m123 D)_abc,INT,abcd 3.判断char型变量ch是否为数字字符的正确表达式为【】。 A)0<=ch<=9 B)'0'<=ch<='9' C)(0<=ch)&&(ch<=9)D)('0'<=ch)&&(ch<='9') 4.已知小写字母a的ASCII码值是97,大写字母A的ASCII码值是65,下列语句中不能输出大写字母B的是【】。 A)putchar('A'+1);B)putchar('b'-32); C)putchar(98-32);D)putchar(B); 5.空字符串的长度是【】。 A)0B)1 C)2 D)3 6.整型变量a定义后赋初值的结果是【】。 int a=2.8*6; A)12 B)16C)17 D)18 7.若有以下说明语句,则该语句【】。 char a='\077'; A)使a的值包含1个字符B)使a 的值包含4个字符 C)使a的值包含3个字符D)说明不合法 8.下面的程序结果为:【】。 main() { int x=023; printf("%d\n",--x); } A)17 B)18C)23 D)24 9.源程序执行后,屏幕上显示【】。 main() { int a; float b; a=4; b=9.5; printf("a=%d,b=%4.2f\n",a,b); } A)a=%d,b=%f\n B)a=%d,b=%f C)a=4,b=9.50 D)a=4,b=9.5 10.设int x=10;x+=x%=(-6)+4;则x= 【】。 A)0B)16 C)18 D)10 11.C语言的下列运算符中,运算对象必须是整型数据的是【】。

C语言期末双面试卷B (1)

三亚学院 2012/2013 学年春季学期 《C语言与程序设计》期末考试B卷 适用对象:12级信息管理与信息系统专业 答题时间:120 分钟考试形式:闭卷 (共40分,每题2分) 1.一个C语言程序是由( C )组成的。 A主程序 B 子程序 C 函数 D 过程 2.执行下面语句的结果为( C )。 y=10;x=y++; A x=10,y=10 B x=11,y=11 C x=10,y=11 D x=11,y=10 3.下列程序的输出结果是( A )。 #include void main() {int x=2,y=3; printf("x=%d,y=%d",x,y); } A.x=2,y=3 B.x=%2,y=%3 C.x=%%d,y=%%d D.x=%d,y=%d 4.不是C语言中基本数据类型为(C)。 A.整型B.实型 C.集合型D.字符型 5.表示关系12<=x<=y的C语言表达式为:( A ) A.(x>=12)&(x<=y) B.(x>=12)&&(x<=y) C.(12<=x)|(x<=y)D.(12<=x)||(x<=y) 6.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式是( B )。A.a<>0 B.!a C.a=0 D.a 7.配合switch语句使用,作用是控制结束某个case分支的执行的语句是( A )。 A.break B.if C.end D.exit 8.执行语句:for(i=1;i++<4;);后,变量i的值是(B)。 A.3 B.4 C.5 D.不定 9.如下程序段执行后输出(B )。 #include void main() { int num=0; while(num<=2) { num++; printf("%d ",num); } } A.1 2 3 4 B.1 2 3 C.1 2 D.1 10.设x=1,y=2,m=4,n=3,则表达式x>y?x:m

(完整版)C语言循环结构练习题带答案

第5章循环结构程序设计 练习题 1. 单项选择题 (1)语句while (!e);中的条件!e等价于 A 。 A. e==0 B. e!=1 C. e!=0 D. ~e (2)下面有关for循环的正确描述是 D 。 A. for循环只能用于循环次数已经确定的情况 B. for循环是先执行循环体语句,后判定表达式 C. 在for循环中,不能用break语句跳出循环体 D. for循环体语句中,可以包含多条语句,但要用花括号括起来 (3)C语言中 D 。 A. 不能使用do-while语句构成的循环 B. do-while语句构成的循环必须用break语句才能退出 C. do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 D. do-while语句构成的循环,当while语句中的表达式值为零时结束循环 (4)C语言中while和do-while循环的主要区别是 A 。 A. do-while的循环体至少无条件执行一次 B. while的循环控制条件比do-while的循环控制条件严格 C. do-while允许从外部转到循环体内 D. do-while的循环体不能是复合语句 (5)以下程序段 C 。 int x=-1; do { x=x*x; } while (!x); A. 是死循环 B. 循环执行二次 C. 循环执行一次 D. 有语法错误 (6)下列语句段中不是死循环的是__C__。

第5章循环结构程序设计35 A. i=100; while (1) { i=i%100+1; if (i==20) break; } B. for (i=1;;i++) sum=sum+1; C. k=0; do { ++k; } while (k<=0); D. s=3379; while (s++%2+3%2) s++; (7)与以下程序段等价的是__A__。 while (a) { if (b) continue; c; } A. while (a) B. while (c) { if (!b) c; } { if (!b) break; c; } C. while (c) D. while (a) { if (b) c; } { if (b) break; c; } (8)以下程序的输出结果是_B___。 #include main() { int i; for (i=4;i<=10;i++) { if (i%3==0) continue; COUT<

(完整版)C语言试题及答案解析

C语言 一、选择题(第题2分,共20分) 1.一个C程序的执行是从 A 。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 3.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。 A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 4.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。 A) float B) char C) int D) double 5. putchar函数可以向终端输出一个 D 。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。 A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 7.判断char型变量ch是否为大写字母的正确表达式是 C 。 A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。 if(x>y) z=x; x=y; y=z; A) x=10, y=20, z=30 B) x=20, y=30, z=30 C) x=20, y=30, z=10 D) x=20, y=30, z=20 9.以下程序段______C__. x=-1; do{ x=x*x; } while(!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 10.以下正确的描述是___B____. A)continue语句的作用是结束整个循环的执行

桂林电子科技大学10年c语言试卷B

桂林电子科技大学试卷 2009-2010 学年第 2 学期课号 课程名称c语言程序设计A(B卷; 开、闭卷)适用班级(或年级、专业)7院09级 考试时间120 分钟班级学号姓名 题号一二三四五六七八九十成绩满分 得分 评卷人 一、单选题(每空2分,共50分) 1、以下所列的C语言常量中,错误的是()。 A) 0xFF B) 1.2e0.5 C) 2L D) '\72' 2、以下4组用户定义标识符中,全部合法的一组是()。 A) _main B) If C) txt D) int Enclude -max REAL k_2 sin turbo 3COM _001 3、若有定义:int a=8, b=5, c;执行语句c = a/b+0.4 ;后,c的值为()。 A) 1.4 B) 1 C) 2.0 D) 2 4、以下程序中,while 循环的次数是()。 #include void main(void) { int i = 0; while (i<10) { if (i<1) continue; if (i==5) break; i++; } } A) 1 B) 死循环,不能确定次数C) 6 D) 10 5、以下能正确定义字符串的语句是()。 A) char str[]={′\064′};B) char str="kx43"; C) char str=";D) char str[]="\0"; 6、以下数组定义中错误的是()。 A) int x[][3]={0}; B) int x[2][3]={{l,2},{3,4},{5,6}}; C) int x[][3]={{l,2,3},{4,5,6}}; D) int x[2][3]={l,2,3,4,5,6};

C语言期末试卷题及答案

一、选择题(共20分,每小题2分) 1. 在C语言类型说明中,int, char, short等类型数据的长度是( D )。 A. 固定的 B. 由用户自己定义的 C. 任意的 D. 与机器字的长度有关 2. 若已正确说明为int类型,要给abc输入数据,则正确的输入语句是( 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); 3. C语言中对嵌套if语句的规定是:else总是与( D )配对。 A. 其之前最近的if B. 第一个if C. 缩进位置相同的if D. 其之前最近且不带else的if 4. 以下语句中,( C )是不可能做到提前退出循环语句的。 A. goto B. break C. continue D. return 5. 假设有两个字符数组a、b,则以下正确的输入语句是( B )。 A. gets(a, b) B. scan f(“%s %s”,a,b) C. scanf(“%s%s”, D. gets(“a”); gets(“b”) 6. 以下正确的描述是( B )。在C语言程序中, A. 函数的定义可以嵌套,但函数的调用不可以嵌套 B. 函数的定义不可以嵌套,但函数的调用可以嵌套 C. 函数的定义和含糊的调用均可以嵌套 7. 在宏定义#define PI 3.1415926中,用宏名PI代替一个( D )。 A. 单精度数 B. 双精度数 C. 常量 D. 字符串 8. 以下选项中,对指针变量p不正确的操作是( C )。 A. int a[6], *p; p = &a; B. int a[6], *p; p = a; C. int a[6]; int *p = a = 1000; D. int a[6]; int *p1, *p2 = a; *p1 = *p2; 9. 设有以下说明,已知int类型占2个字节,则下列叙述正确的是( D )。 struct st { int a; int b[2]; } a; A. 结构体变量名a和结构体成员a同名,不合法 B. 程序运行时将为结构体st分配6个字节的内存单元 C. 程序运行时不为结构体st分配内存单元 D. 程序运行时将为结构体变量a分配6个字节的内存单元 10. 当文件顺利关闭时,fclose()的返回值是( C )。 A.-1 B. EOF C. 0 D. 1 二、填空题(共20分,每小题2分) 1. C程序中定义的一个变量,代表内存中的一个存储单元。 2. …\72?在内存中占一个字节,”\72”在内存中占二个字节。 3. 结构化程序设计的3种基本结构是顺序结构、选择结构、循环结构。 4. 下列for循环执行 4 次。For (x =0 , y = 0; y != 99 && x < 4; x++) ;

c语言试题及答案

《C语言》课程综合复习资料 一、单选题 1. 在C语言中,字符型数据在存中的存储形式是 A)原码 B)补码 C)反码 D)ASCII码 2. 在C语言中,十进制数47可等价地表示为 A) 2f B) 02f C) 57 D) 057 3. 设有定义:int x=12,n=5; 则表达式 x%=(n%2) 的值为 A) 0 B) 1 C) 2 D) 3 4. 设有定义语句:char str[][20]={,"Beijing","中国石油大学"},*p=str; 则printf("%d\n",strlen(p+20)); 输出结果是 A)10 B) 6 C) 0 D) 20 5. 已定义以下函数: fun(int *p) { return *p; } 该函数的返回值是 A)不确定的值 B)形参p所指存储单元中的值 C)形参p中存放的值 D)形参p的地址值 6. C语言中,函数返回值的类型是由 A)return语句中的表达式类型决定 B)调用函数的主调函数类型决定 C)调用函数时的临时类型决定 D)定义函数时所指定的函数类型决定 7. 有以下函数定义: void fun( int n , double x ) { …… } 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是 A) fun( int y , double m ); B) k=fun( 10 , 12.5 ); C) fun( 10 , 12.5 ); D) void fun( 10 , 12.5 ); 8. 以下选项中不能正确赋值的是 A) char b[]={′H′,′e′,′l′,′l′,′o′,′!′}; B) char b[10];b="Hello!";

桂林电子科技大学静力学试卷

桂林电子科技大学应用科技学院试卷 课程名称工程力学(闭卷) 题号一二三四五六七八九十成绩满分30 10 30 30 100 得分 (注:请将答案直接写在试卷上,写在其它纸上无效。) 一、填空题(30分,每空1.5分) 1. 作用于刚体上的二力,使刚体保持平衡状态的必要与充分条件是:此二 力大小______、方向______、且在________; 2. 力偶对刚体的(平动或旋转)______运动不会产生任何影响,力与力偶相互(能或不能)______平衡; 3. 力偶的三要素是______、______、______; 4. 平面汇交力系平衡的几何条件是_____________________________; 5. 二矩式方程∑Y=0,∑M A(F)=0,∑M B(F)=0 的使用补充条件为 __________________________; 6. 静不定指的是____________________________________; 7. 平面三力汇交定理是指________________________________________; 8. 约束基本类型为______、______、______、______; 9. 摩擦按运动类型可分为______、______、______; 10. 倾角为α的斜面,其最大静摩擦系数为fs,则其自锁条件为______; 二、是非题(10分,每题1分) 1. 二力杆指的是直杆(); 2. 约束反力总是与其所能阻碍的物体的运动方向相反(); 3. 力系平衡的几何条件是具有封闭的力的多边形(); 4. 力偶是一对平行力(); 5. 力对点的矩在某轴上的投影就是力对该轴的矩(); 6. 桁架分析时其中所有杆件都是二力杆(); 7.一般情况下,摩擦系数排序为fs≥fd≥δ(); 8. 分力就是投影(); 9. 作用与反作用力是一对平衡力(); 10. 柔性体约束的约束反力总是指向受力体()。 三、作图题(30分,每题10分) 1.作下图所示各构件的受力图,并用几何法求解约束反力。

C语言期末考试试卷附参考答案

一、单项选择题(请将答案填在下面表格中20×1) 1. 以下叙述中正确的是()。 A. C语言比其他语言高级 B. C语言可以不用编译就能被计算机识别执行 C. C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D. C语言出现的最晚,具有其他语言的一切优点 2. 以下叙述中正确的是()。 A.构成C程序的基本单位是函数 B.可在一个函数中定义另一个函数 C. main函数必须放在其他函数之前 D.所有被调用的函数一定要在调用之前进行定义3. 以下叙述中正确的是()。 A. C语言程序总是从第一个函数开始执行 B.在C语言程序中,要调用函数必须在main()函数中定义 C. C语言程序总是从main()函数开始执行 D. C语言程序中的main()函数必须放在程序的开始部分 4. 以下有关for循环的正确描述是()。 A. for循环只能用于循环次数已经确定的情况 B. for循环是先执行循环体语句,后判断表达式 C.在for循环中,不能用break语句跳出循环体 D. for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 5. 对下面程序段的描述,正确的是()。 x=-1; do {x=x*x;}while(!x); A.是死循环 B. 循环执行一次 C. 循环执行两次 D. 有语法错误 6. 以下有关C语言数组说法正确的是()。 A.数组元素的数据类型可以不一致 B.数组元素的个数可以不确定,允许随机变动 C.可以使用动态内存分配技术,定义元素个数可变的数组 D.定义一个数组后,就确定了它所容纳的具有相同数据类型元素的个数 7.以下数组定义正确的是()。 A. int a(20); B. int a[ ]={1,2,5,7,0}; C. int a[n]; D. int a[2]={1,2,4,6}; 8.在定义int b[2][10];之后,对b数组元素引用正确的是( )。 A. b[0][9] B. b[2,3] C. b(1)(5) D. b[10] [0] 9. 如有定义语句int c[ ]={1,5,3,4,6,7,0};,则数组c有()个元素。 A.0 B.不定 C. 6 D. 7 10.以下叙述中不正确的是( )。 A.字符数组中可以存放字符串 B.可以对字符型数组进行整体输入、输出 C.可以对整型数组进行整体输入、输出 D.不能通过“=”对字符型数组进行整体赋值 11.已知char d[ ]={”543210”};,则数组d的长度是( )。 A.5 B.6 C. 7 D. 8 12.已知char s3[ ]=”China”;,则下列程序段的输出结果是()。 printf(“%d”,sizeof(s3)); A.5 B. 6 C. 7 D.8 13.已知char s1[10],s2[ ]={”China”};则在程序中能将字符串” China”赋给数组s1的是()。 A.s1={“China”}; B.strcpy(s1,s2); C. s1=s2; D. strcpy(s2,s1);

C语言循环结构练习题带答案.doc

第 5 章循环结构程序 设计 练习题 1.单项选择题 ( 1)语句 while (!e);中的条件!e等价于A。 A. e==0 B. e!=1 C. e!=0 D. ~e ( 2)下面有关for循环的正确描述是D。 A. for循环只能用于循环次数已经确定的情况 B. for循环是先执行循环体语句,后判定表达式 C. 在 for循环中,不能用break 语句跳出循环体 D. for循环体语句中,可以包含多条语句,但要用花括号括起来 (3)C语言中D。 A.不能使用do-while语句构成的循环 B. do-while 语句构成的循环必须用break 语句才能退出 C. do-while 语句构成的循环,当while 语句中的表达式值为非零时结束循环 D. do-while 语句构成的循环,当while 语句中的表达式值为零时结束循环 ( 4) C 语言中 while 和 do-while 循环的主要区别是A 。 A. do-while的循环体至少无条件执行一次 B. while的循环控制条件比do-while的循环控制条件严格 C. do-while允许从外部转到循环体内 D. do-while的循环体不能是复合语句 ( 5)以下程序段C。

int x=-1; do { x=x*x; } while (!x); A.是死循环 B. 循环执行二次 C. 循环执行一次 D. 有语法错误( 6)下列语句段中不是死循环的是__C__。 A.i=100; while (1) { i=i%100+1; if (i==20) break; } B.for (i=1;;i++) sum=sum+1; C.k=0; do { ++k; } while (k<=0); D.s=3379; while (s++%2+3%2) s++;

C语言程序设计试卷及答案

C 语言程序设计 笔试试题 题号 一 二 三 四 五 六 笔试(70%) 综 合 (30%) 总分 分数 试卷说明: 1. 笔试卷面总分100分,取卷面成绩的70%计入总分; 2. 综合成绩为平时成绩(10%)和实验成绩(20%)之和,占总分的30%; 3. 答题时禁止拆开试卷钉,试卷背面即为草稿纸; 4. 答题时间120分钟。 一、单项选择题。将正确答案填入下面框中。 (本题16分,每小题1分) 题号 1 2 3 4 5 6 7 8 答案 题号 9 10 11 12 13 14 15 16 答案 1. 有以下程序 main() {int a=1,b=0; if(!a) b++; else if(a==0) if(a) b+=2; else b+=3; printf(“%d\n ”,b); }则程序输出( A )。 A) 0 B) 1 C) 2 D) 3 2. 有以下定义:int a; long b; double x,y;则下列正确的是( A )。 A) a%(int)(x-y) B) a=x!=y C) (a*y)%b D) y=x+y=x 3. 若有定义 int (*p)[3];则下列说法正确的是( C )。 A) 定义了基类型为int 的三个指针变量 B) 定义了一个名为 *pt 、具有三个元素的整型数值 号 学 名 姓 注意行为规范 遵守考试纪律

C) 定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组D) 定义了基类型为int的具 有三个元素的整型数组 4. 有以下程序段 main() { int x=10; while(x--); printf("x=%d\n",x);} 则最后的输出结果是:( B)。 A) x=0 B) x= -1 C) x=1 D)while构成无限循环 5. 有以下程序: int fun() {static int x=1; x *= 2; return x;} main( ) { int i,s=1 ; for(i=1 ;i<=2 ;i++) s=fun() ; printf(“%d\n ”,s) ;} 执行后的输出结果为( D)。 A) 0 B) 1 C) 8 D) 4 6. void main( ){ int k=011; printf("%d\n",k++); } }程序输出结果是( D ) A)12 B) 11 C) 10 D) 9 7. 以下C语言标识符中,不合法的是( C)。 A) _2 B) a_b C) a--b D) AaBc 8. C语言允许函数类型默认定义,此时该函数值隐含的类型是( B)。 A) float B) int C) long D) double 9. 以下程序段运行结果是( B)。 enum weekday{aa,bb=2,cc,dd,ee}week=ee; printf(“%d\n“,week); A) 4 B) 5 C) ee D) 0 10. 以下对C语言函数的描述中,不正确的是( B )。 A) 不同函数中可以使用相同名字变量B) 函数可以嵌套定义 C) 函数可以没有返回值D) 程序由函数组成 11. 若有定义语句:double x[5]={1.0,2.0,3.0,4.0,5.0},*p=x;则错误引用x数组元素的是( D )。 A) *p B) *x C) *(p+1) D) x[5]

桂林电子科技大学单片机试卷

桂林电子科技大学信息科技学院试卷2009-2010 学年第1 学期课号 课程名称单片机原理与应用技术(A卷; 笔试, 闭卷)适用班级(或年级、专业)07级电信、信息 一、单项选择题(每小题3分,共45分) 1、- 10的补码为()。 A: F5H B:F6H C:0AH D:0BH 2、单片机复位后的SP与P0的内容是()。 A:SP=00H,P0=00H B: SP=00H,P0=FFH C:SP=07H,P0=00H D:SP=07H,P0=FFH 3、单片机中WR的功能是选通是()。 A:片外数据RAM B:片内数据RAM C:片外程序ROM D:片内程序ROM 4、在下列指令中,正确的MCS-51单片机指令是()。 A:INC C B:ADD A,B C:SUB A , R2 D:MOVX @R2, A 5、能同时将TF0清零的跳转指令是()。 A:JB TF0,LOOP B:JBC TF0,LOOP C:JNB TF0,LOOP D:JZ LOOP 6、当R0的地址为10H时,PSW中的RS1、RS0两位是()。 A:00 B:01 C:10 D:11 7、片内没有上拉电阻的并口是()。 A:P3 B:P2 C:P1 D:P0 8、外部中断1的中断服务程序入口地址是()。 A:0003H B:000BH C:0013H D:0023H 9、用12MHz晶体时,T1做一次定时的最长时间为()。 A:256 μS B:512 μS C:65536μS D:131072 μS 10、在串口控制寄存器SCON中,REN是()。

A:串行接收中断标志位B:串行接收允许位 C:串行发送中断标志位D:串行发送允许位 11、定时器T1的溢出中断标志是()。 A:IT1 B:TI C:TF1 D:IE1 12、EOC信号在ADC0809中起到的作用是() A.启动AD转换 C. ADC0809的片选信号 B.AD转换结束标志 D. 不能确定 13、已知(00H)= 06H, (01H) = 08H, 有这样的定义char data *p; 其中p = 0x01;则*p = () A.00H C.01H B.06H D.08H 14、已知C语言程序p = 0x30; *p = 0x48与之等价的汇编语言程序为() A.MOV 30H,#48H C.MOV 30H,48H B.MOV 30H,#48 D.MOV 30H,48 15、DAC0832的工作方式不包括以下哪一种() A.直通C.单缓冲 B.双缓冲D.双极性 二、阅读程序填空(每小题5分,共25分) 1、设PSW=00H, R0=49H、B=0EDH,问:执行下列程序后PSW= ?R0= ?B= ? MOV SP, #6FH PUSH 0F0H PUSH 00H PUSH PSW POP P SW POP 0F0H POP 00H 2、分别写出若A=57H,执行下列程序后A= ?若A=0F2H, 执行下列程序后 A= ? CJNE A, #80H , LOOP1 ; LJMP NEXT

相关文档
相关文档 最新文档