文档视界 最新最全的文档下载
当前位置:文档视界 › C程序设计习题解答

C程序设计习题解答

C程序设计习题解答
C程序设计习题解答

一、选择题(蓝色加粗为正确选项)

在C语言中,合法的字符常量是()。

A. '字'

B. "A"

C. "ABC"

D. '\x41'

在C语言中,用户能使用的合法标识符是()。

A. 姓名

B. _xyz

C. 5i

D. for

在C语言中,不合法的实型常量是()。

A. -0.123

B. -.123

C. -1.23e-1

D. -123e-3.0

C语言的下列运算符中,优先级最高的运算符是()。

A. ++

B. +=

C. ||

D. !=

设有说明语句int k,i=5,j=10;,则表达式k=(++i)*(j--)的值是()。

A. 50

B. 60

C. 45

D. 55

设有说明语句int i,j;,则表达式i>=j||i

A. 视i、j的具体值而定

B. FALSE

C. TRUE

D. 1

已知'A'的ASCII码的十进制值为65,'0'的ASCII码的十进制值为48,则以下程序运行结果是()。

main()

{ char ch1,ch2;

ch1='A'+'5'-'3';

ch2='A'+'6'-'3';

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

}

A. 67,D

B. C,D

C. C,68

D. 67,68

设有语句int x=2,y=3;,则表达式x=(y==3)的值是()。

A. 0

B. 1

C. 2

D. 3

以下程序的运行结果是()。

main()

{ unsigned a = 0x3ef, b;

b = a << 2;

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

}

A. 3ef,fb

B. 3ef,fbc

C. fbc,3ef

D. fbc,fbc

下列语句中,符合C语言语法的赋值语句是()。

A. a=7+b+c=a+7;

B. a=7+b++=a+7;

C. a=7+b,b++,a+7;

D. a=7=b,c=a+7;

为表示x≥y≥z,须用的C语言表达式为()。

A. (x>=y)&&(y>=z)

B. (x>=y)AND(y>=x)

C. x>=y>=z

D. (x>=y)&(y>=z)

设int a,b;,用语句scanf('%d%d",&b); 输入a、b值时,不能作为输入数据分隔符的是()。

A. 空格

B. ,

C. 回车

D. [Tab]

以下程序运行时,若从键盘输入5,则输出结果是()。

main()

{ int a;

scanf("%d",&a);

if(a++>5) printf("%d\n", a);

else printf("%d\n",a--);

}

A. 7

B. 4

C. 5

D. 6

以下程序的运行结果是()。

main()

{ int a, b, c;

a =

b =

c = 1;

if ( a++ || ++b ) c++;

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

}

A. 2, 1, 2

B. 1, 2, 1

C. 2, 2, 2

D. 2, 2, 1

以下程序的运行结果是()。

main()

{ int i=3,j=2,k;

k=i+j;

{

int k=8;

if(i==3) printf("%2d",k);

else printf("%2d",j);

}

printf("%2d%2d\n",i,k);

}

A. 8 3 5

B. 8 3 8

C. 3 8 3

D. 5 8 3

有以下程序:

main()

{ int c;

while((c=getchar())!= '\n')

{ switch(c-'2')

{ case 0 :

case 1 : putchar(c+4);

case 2 : putchar(c+4); break;

case 3 : putchar(c+3);

default: putchar(c+2); break;

}

}

printf("\n");

}

当输入:247<回车>,程序的输出结果是()。

A. 689

B. 6689

C. 66778

D. 66887

以下程序的运行结果是()。

main()

{ int a=1,b=0;

switch(a)

{

case 1:

switch(b)

{

case 0: printf("0000\n");

case 1: printf("1111\n");break;

}

case 2:printf("2222\n");break;

}

}

A. 0000

1111

B. 0000

1111

2222

C. 0000

2222

D. 1111

2222

以下程序的运行结果是()。

void main()

{ int a=1;

switch(a)

{

case 1: printf("aaaa\n");

case 2: printf("bbbb\n"); break;

default: printf("cccc\n");

}

}

A. aaaa

B. aaaa

bbbb

cccc

C. aaaa

bbbb

D. aaaa

cccc

以下程序运行后,a的值是()。

main()

{ int a,b;

for(a=1,b=1;a<=100;a++)

{

if(b>=20) break;

if(b%3==1) { b+=3; continue; }

b-=5;

}

}

A. 101

B. 100

C. 8

D. 7

以下程序段的运行结果是()。

main()

{ int i,j;

i=10;

j=20;

for(;j>=0;j-=20)

{

if(i=j) printf("Good! ");

else printf("Not good!");

}

}

A. Good!Good!

B. Not good!

C. Good!

D. Good! Not good!

以下程序的运行结果是()。

main()

{ int a,b,c,n=13;

printf(" A B C\n");

for(a=1;a<=n;a++)

for(b=1;b<=n;b++)

for(c=b;c<=n;c++)

if(a*a==b*b+c*c)

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

}

A. A B C

5 3 4

10 6 8

13 5 12

B. A B C

3 5 4

6 10 8

5 13 12

C. A B C

4 5 3

8 10 6

12 13 5

D. A B C

5 4 3

10 8 6

13 12 5

以下程序段的运行结果是()。

int x=3;

do{

printf("%3d, ", x-=2 );

}while(!(--x));

A. 1

B. 30

C. 死循环

D. 1, -2

设E为表达式,以下与do …while(E);不等价的语句是()。

A. do … while(!E==0);

B. do … while(E>0||E<0);

C. do … while(E==0);

D. do … while(E!=0);

以下程序的运行结果是()。

main()

{ int i,s;

i=0;

s=1;

do{

s/=s+1;

i++;

}while(i<=10);

printf("%2d%2d\n",i,s);

}

A. 10 2

B. 11 2

C. 10 0

D. 11 0

下列程序段中,非死循环的是()。

A. int i=100;

while(1)

{ i=i%100+1;

if(i>=100) break;

}

B. int k=0;

do{

++k;

}while(k>=0);

C. int s=10;

while(++s%2+s%2) s++;

D. for(;;)

循环语句循环体中执行continue语句,其作用是()。

A. 立即终止程序运行

B. 继续执行continue语句之后的循环体各语句

C. 结束本次循环

D. 结束本次循环,跳出循环

下列do...while循环的循环次数是()。

int i=5;

do{

printf("%d\n",i--);

i--;

}while(i!=0)

A. 0

B. 2

C. 5

D. 死循环

设已定义char s[]="\"Name\\Address\023\n";,则字符串中字符个数是()。

A. 19

B. 15

C. 18

D. 14

已定义char x[8]; int i;,为了给该数组赋值,下列语句正确的是()。

A. x[8]="Turbo C";

B. x="Turbo C";

C. x[]="Turbo C";

D. for(i=0;i<7;i++) x[i]=getchar();

设int a[][4]={0,0};,则下列描述错误的是()。

A. 数组a的每个元素的值为0

B. 二维数组a的第一维大小为1

C. 数组a有4个元素

D. 只有元素a[0][0]和a[0][1]的值为0,其余元素的值不确定

以下程序段的运行结果是()。

main()

{ int i=4,j;

j=i;

pic(i+2*j-2,'*');

putchar('\n');

for(j-=2;j>=0;j--)

{ pic(3-j, ' ');

pic(i+2*j, '*');

putchar('\n');

}

}

pic(int len,char C.

{ int k;

for(k=1;k<=len;k++) putchar(C.;

}

A. *

***

*****

*******

B. **********

**********

**********

**********

C. ****

******

********

**********

D. **********

********

******

****

以下程序运行结果是()。

main()

{ char a[][5]={ "ABCD","1234","abcd","5678","EFGH"};

int i;

for(i=0;i<3;i++) printf("%s",a[i]);

}

A. A1a

B. ABCD1234abcd

C. ABC

D. ABCD1234abcd5678EFGH 以下程序的运行结果是()。

main()

{ int array[4][4];

int i,j;

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

for(j=0;j<4;j++) array[i][j]=i+j;

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

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

if(i==j||i+j==3) array[0][j]=0;

for(j=0;j<4;j++) printf("%2d",array[0][j]);

printf("\n");

}

A. 2 0 0 5

B. 1 0 0 4

C. 0 1 2 0

D. 0 4 5 0

设有下列语句,则()是对a数组元素的不正确引用,其中0≤i<10。

int a[1={0,1,2,3,4,5,6,7,8,9}, *p=a;

A. a[p-a]

B. *(&a[i])

C. p[i]

D. *(*(a+i))

若有以下程序:

main

{ char ch[]="I am student! ", *p;

p=ch;

printf("%x\n",p);

printf("%x\n",p+9);

}

其中第一个printf()运行结果是ffd6,则第二个printf()运行结果是()。

A. ffdf

B. ffe8

C. ffd6

D. ffcf

以下程序的运行结果是()。

main()

{ int i;

char aa[][3]={'a','b','c','d','e','f'};

char (*p)[3]=aa;

for(i=0;i<2;i++)

if(i==0) aa[i][i]+=**(p++);

printf("%c\n",**p);

}

A. a

B. b

C. c

D. d

设有下列语句:

char str1[]="string",str2[8],*str3,*str4="string";

则()是对库函数strcpy的不正确调用。此函数用来复制字符串。A. strcpy(str3,"HELLO3"); B. strcpy(str2,"HELLO2");

C. strcpy(str1,"HELLO1");

D. strcpy(str4,"HELLO4");

若有以下定义和语句,且0≤i<4,0≤j<3,则不能访问a数组中的元素的是()。int i,(*p)[3];

int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12};

p = a;

A. *(*(a+i)+j)

B. p[i][j]

C. (*(p+i))[j]

D. p[i]+j

以下关于指针概念的叙述中,错误的是()。

A. 一个指针变量只能指向同一类型的变量

B. 一个变量的地址称为该变量的指针

C. 两个同类型的指针变量可以作加减运算

D. 任何指针变量都可以与空指针NULL进行比较

以下程序的运行结果是()。

fun3(int x)

{ static int a=3;

a+=x;

return a;

}

main()

{ int k=2,m=1,n;

n=fun3(k);

n=fun3(m);

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

}

A. 3

B. 4

C. 6

D. 9

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

func(int a)

{ static int m=0;

m += a;

return( m );

}

main()

{ int k=4, p;

p=func(k); printf("%d,", p);

p=func(k); printf("%d\n", p);

}

A. 4,4

B. 0,4

C. 4,8

D. 8,8

以下程序的运行结果是()。

age(n)

int n;

{ int c;

if(n==1) c=10;

else

if(n%2==0) c=age(n-1)+2;

else c=age(n-1)+3;

return(c);

}

main()

{ printf("%d\n",age(5)); }

A. 18

B. 20

C. 10

D. 21

以下程序的运行结果是()。

void ast (int x,int y,int *cp,int *dp)

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

}

main()

{ int a=4,b=3,c,d;

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

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

}

A. 7,1

B. 1,7

C. 7,-1

D. c、d未赋值,编译出错

以下程序的输出结果是()。

swap(int *p, int *q)

{ int t;

t=*p; *p=*q; *q=t;

}

main()

{ int a=10,b=20;

swap(&a, &b);

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

}

A. 10,10

B. 20,20

C. 10,20

D. 20,10

以下程序的运行结果是()。

main()

{ void change_p();

int *p,a[]={1,4,7,10};

p=&a[1];

change_p(p);

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

}

void change_p(int *pi)

{ *pi +=2;

pi +=2;

*pi +=2;

}

A. 7

B. 8

C. 5

D. 6

以下程序段的运行结果是()。

enum weekday{ aa,bb=2,cc,dd,ee }week=ee;

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

A. ee

B. 5

C. 2

D. 4

以下对枚举类型进行定义,不正确的是()。

A. enum b{1, 2, 3};

B. enum a{A, B, C};

C. enum c{D=3, E, F};

D. enum d{X=0, Y=5, Z=9};

在C程序中,设一表达式含有int、long、unsigned和char类型的常数和变量,则表达式的最后运算结果是()。

A. int

B. char

C. unsigned

D. long

若定义如下结构,则能打印出字母M的语句是()。

struct person{

char name[9];

int age;

};

struct person class[10]={{"Wu",20}, {"Liu",23}, {"Ma",21}, {"zhang",22}};

A. printf("%c\n",class[3].name);

B. printf("%c\n",class[2].name[1]);

C. printf("%c\n",class[2].name[0]);

D. printf("%c\n",class[3].name[1]);

以下程序的运行结果是()。

main()

{ union u_type

{ int i;

double x;

float f;

};

struct str_type

{ char str[10];

union u_type u[10];

};

printf("%d\n", sizeof(struct str_type));

}

A. 81

B. 90

C. 150

D. 120

以下程序的输出结果是()。

main()

{ printf( "%d\n", fac(5) );

}

fac(int n)

{ int s;

if(n==1) return 1;

else return n*fac(n-1);

}

A. 120

B. 60

C. 6

D. 1

以下程序的运行结果是()。

main()

{ char ch[7] = "12xy89";

int i, s=0;

for(i=0; ch[i]; i++)

if(ch[i]>='0' && ch[i]<='9') s=10*s + ch[i] - '0';

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

}

A. 12

B. xy

C. 12xy89

D. 1289

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

fun(char *w)

{ char t, *s1, *s2;

for(s1=w, s2=w+strlen(s1)-1; s1

{ t = *s1;

*s1 = *s2;

*s2 = t;

}

}

main()

{ char *p="12345";

fun(p);

puts(p);

}

A. 12345

B. 54321

C. 15115

D. 51551

以下程序中的循环执行了()次。

#define N 2

#define M N+1

#define NUM (M+1)*M/2

main()

{ int i,n=0;

for(i=0;i

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

}

A. 5

B. 6

C. 8

D. 9

以下程序的输出结果是()。

#define SUM(y) 1+y

main()

{ int x=2;

printf("%d\n", SUM(5)*x );

}

A. 10

B. 11

C. 12

D. 15

以下程序的运行结果是()。

#define M(x,y) x*y

main()

{ int a=3,b=2,s1,s2,f12();

s1=M(a+b,a-b);

s2=M(a-b,a+b);

printf("%d,%d,%d,%d\n",s1,s2,f12(a+b,a-b),f12(a-b,a+b));

}

f12(int x,int y)

{ return(x*y); }

A. 7,-1,5,5

B. 5,5,7,-1

C. 5,5,5,5

D. 7,-1,7,-1

若有以下定义:

struct link

{ int data;

struct link *next;

} *p;

并已建立如下图所示的链表结构:

p

指针p指向该单向链表的第一个结点,要输出链表所有结点的数据成员data,以下循环语句正确的是()。

A) for(;p!=NULL;p++) printf("%d,",p->data);

B) for(;!p;p=p->next) printf("%d,",(*p).data);

C) while(p)

{ printf("%d,",(*p).data);

p=p->next;

}

D) while(p!=NUll)

{ printf("%d,",p->data);

p++;

}

若有以下定义:

struct link

{ int data;

struct link *next;

} a,b,c, *head, *p;

其中,指针head 指向变量a ,p 指向变量c ,a.next 指向变量b ,链表结构如下图所示: a b c

则能够把c 插入到a 和b 之间并形成新链表的程序段是( )。

A) a.next = c; c.next = b;

B) head.next = p; p.next = head.next;

C) head->next = &c; p->next = head->next;

D ) (*head).next = p; (*p).next = &b;

若有以下定义:

struct link

{ int data;

struct link *next;

} *head, *p;

并已建立如下图所示的链表结构:

则能保留链表其它结点,而删除p 所指向结点的程序段是( )。

A ) head->next = p->next; free(p);

B) head->next = p; p->next = head->next; free(p);

C) free(p); head->next = p; p->next = head->next;

D) free(p); head->next = p->next;

以下程序的功能是( )。

#include

main()

{ FILE *fp;

long int n;

fp=fopen("wj.txt","rb");

fseek(fp,0,SEEK_END.;

n=ftell(fp);

fclose(fp);

printf("%ld",n);

}

A. 计算文件wj.txt的起始地址

B. 计算文件wj.txt的终止地址

C. 计算文件wj.txt的长度

D. 将文件指针定位到文件末尾

标准函数fgets(s, n, f)的功能是()。

A. 从文件f中读取长度为n的字符串存入指针s所指的内存

B. 从文件f中读取长度不超过n-1的字符串存入指针s所指的内存

C. 从文件f中读取n个字符串存入指针s所指的内存

D. 从文件f中读取长度为n-1的字符串存入指针s所指的内存

以下程序的可执行文件名是file.exe。

main(argc,argv)

int argc;

char *argv[];

{ int i;

for(i=2;i

printf("%s%c",argv[i],(i

}

现在DOS命令行输入:file My C Language and Programming<回车>,其输出结果是()。

A. C Language and Programming

B. My C Language and Programming

C. MyCLanguageandProgramming

D. file My C Language and Programming

二、填空题

1、以下程序实现计算10的阶乘。

#include

viod main()

{ long p;

int i;

p= 1 ;

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

p=p*i;

printf(" %d!=%ld\n ", 10, p);

}

2、以下程序实现将输入的一行字符中的大写字母转变为相应的小写字母,小写字母则转变为相应的大写字母,其余字符不变。以回车结束字符输入。

#include "stdio.h"

void main()

{ char s[80];

int i;

printf("please input a string:");

for(i=0; (s[i]=getchar())!= …\n? ; i++);

s[i]= …\0? ;

for(i=0;s[i]!='\0';i++)

{ if(s[i]>='a'&&s[i]<='z')

s[i]=s[i]+(…A?-…a?);

else if ( s[i]>='A'&&s[i]<='Z' )

s[i]=s[i]+ (…a?-…A?) ;

}

puts(s);

}

3、以下程序实现从键盘输入一个3行5列的二维整型数组表示的3×5的矩阵,并计算第2行元素之和。

#include

void main()

int a[3][5], sum;

sum= 0 ;

printf("Input 15 numbers: ");

for(i=0; i<3 ; i++)

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

scanf("%d", &a[i][j] );

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

sum += a[1][j] ;

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

}

4、以下程序实现输入一个4行4列的整型数组,求其元素的最大值和最小值。

#include"stdio.h"

#define ROW 4

#define COL 4

void main()

{ int a[4][4] , i, j, max, min;

printf("input the 16 integers: ");

for(i=0;i

for(j=0; j

max=min= a[0][0] ;

for(i=0;i

for(j=0;j

if( a[i][j]>max ) max=a[i][j];

if(a[i][j]

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

printf("min=%d\n", min);

}

5、以下程序实现计算5个学生的总成绩和平均成绩,其中5个学生的成绩存储在一个结构体数组中。

#include

{ char name[10];

float score;

};

void main()

{ struct stu st[5]={"Mary",76,"John",85,"Tom",81.5, "Luis",76,"Michel",90.5};

int i=1;

float aver, total=0.0 ;

while( i<=5 )

{ total=total+ st[i-1].score ;

i++;

}

aver= total/5 ;

printf("\ntotal=%.2f,aver=%.2f\n", total, aver);

}

6、以下程序实现输入若干整数,统计其中大于零和小于零的个数。以零结束输入。

#include

void main()

{ int n, a, b;

a=b= 0 ;

scanf("%d",&n);

while( n!=0 )

{ if(n>0) a++ ;

else b++;

scanf("%d", &n );

}

printf("Number of N>0 or N<0 integers are: %d, %d\n", a, b);

}

7、以下函数sort用冒泡法实现对数组a 中的m个元素进行从大到小(降序)排序。

void sort(int a[], int m)

{ int i, j, t, temp;

for( i=0; i< m-1 ; i++ )

{ temp = 0;

for( j=0; j < m-i-1; j++)

{ if (a[j]>a[j+1])

{ temp = 1;

t = a[j]; a[j] = a[j+1] ; a[j+1] = t;

}

}

if(!temp) break ;

}

}

8、以下函数sort用选择法实现对数组a 中的m个元素进行从小到大(升序)排序。

void sort(int a[], int m)

{ int i, j, k, t;

for( i = 0; i < m-1; i++ )

{ k=i ;

for( j=i+1; j< m ; j++)

if( a[j] < a[k] ) k=j ;

if( k != i )

{ t = a[k]; a[k]= a[i]; a[i] = t ;

}

}

}

三、改错题

1、以下程序实现统计输入字符串中英文字母、数字和其它字符的个数。以回车结束输入。

#include

void main()

{ char ch;

int letter; number; other;

letter==number==other==0; // =

while((ch=getchar())!='\0') // …\n?

{ if (ch>='a'&&ch<='z') letter++; // (ch>=?a?&&ch<=?z?||ch>=?A?&&ch<=?Z?)

else if (ch>=0 && ch<=9) number++; // (ch>=?0?&&ch<=?9?)

else other++;

}

printf("letter=%d,number=%d,other=%d\n", &letter, &number, &other);

// letter, number, other

}

2、以下程序实现从键盘输入三角形的三边长,求其面积,若三个边长不能构成三角形,则提示。

#include

#include

void main()

{ int a,b,c,s,area;

scanf("%f%f%f", a, b, c); &a, &b, &c

if( a+b>c || b+c>a || a+c>b ) // && &&

{ s = (a+b+c)/2;

area = sqrt(s(s-a)(s-b)(s-c)); s*(s-a)*(s-b)*(s-c)

printf("area is %.2f\n",area);

}

else printf(…Invalid input.\n?); // ““

}

3、以下程序实现求解百元买百鸡问题:设一只公鸡2元、一只母鸡1元、一只小鸡0.5元,那么一百元买一百只鸡,其中公鸡、母鸡、小鸡数可分别为多少?有多少种方案?

程序设计基础试题库

练习题一Visual FoxPro 基础 、选择题 1. 关系数据库管理系统应能实现的专门关系运算包括___c __________ A 显示、打印、制表B关联、更新、排序 C 选择、投影、连接D排序、索引、统计 2. 关系是指__b__。 A 属性的集合B元组的集合 C 实例的集合 D 字段的集合 3. 如果把学生看成实体,某个学生的姓名叫“杨波”,则“杨波”应看成是___b ______ 。 A)属性型B )属性值C )记录型D )记录值 4. 关系数据库系统中所使用的数据结构是 _______ d ___ 。 A)图B )树C )表格D )二维表 5. 对表进行水平方向的分割用的运算是 _______ b ___ 。 A)交B )选择C )投影D )连接 6. 下列数据库技术的术语与关系模型的术语的对应关系中_______ d _____ 是正确的。 A)实例与关系 B )字段与元组C )记录与属性 D )记录类型与关系模式 7. 下列关于数据库系统的叙述中,正确的是 _____ c _____ 。 A)数据库系统中数据的一致性是指数据类型一致 B)数据库系统只是比文件系统管理的数据更多 C)数据库系统减少了数据冗余 D数据库系统避免了数据冗余 8. 关系数据模型 ______ d ___ 。 A)只能表示实体间的1:1联系 B)只能表示实体间的1:n C只能表示实体间的m:n D 可以表示实体间的上述三种联系 9. 在一个关系中如果有这样一个属性存在,它的值能惟一地标识关系中的每一个元组,称

这个属性为 _____ a____ 。 A)关键字B )主属性C )数据项D )主属性值 10. 关系数据库管理系统中的元组是______ b ____ 。 A)关系中的垂直方向的列 B )关系中的水平方向的行 C属性或属性的组合 D )以上的答案均不正确 11. 从数据库的整体结构看,数据库系统采用的数据模型有_________ a __ 。 A)层次模型、网状模型和关系模型 B)层次模型、网状模型和环状模型 C)网状模型、链状模型和层次模型 D链状模型、关系模型和层次模型 12. 设有属性A B、C D以下表示中不是关系的是___________ d__。 A)R( A) B )R( A, B)C )R (A, B, C, D) D )R (A X B X C X D) 13. 若实体间联系是M N的,则将联系类型_________ a___ 。 A)也转换为关系模型 B)属性加入任一个关系模式中 C)属性加入N端实体类型相应的关系模式中 D)属性加入M端实体类型相应的关系模式中 14. 数据库系统的构成为数据库、计算机硬件系统、用户和________ a ____ 。 A 数据库管理系统 B 操作系统 C 数据集合 D 文件系统 15. 层次型、网状型和关系型数据库划分原则是________ c ___ 。 A 文件大小 B 记录长度 C 数据之间的联系 D 联系的复杂程度 16. 在数据库设计中用关系模型来表示实体和实体之间的联系,关系模型的结构是 _____ d ___ 。 A 封装结构 B 层次结构 C 网状结构 D 二维表结构 17. 在关系模型中,实现“关系中不允许出现相同的元组”的约束是通过__a ________ 。 A 主键 B 超键 C 外键 D 候选键 18. 层次模型不能直接表示 ______ b __ 关系。 A 1:1 B m:n C 1:m D 1:1 和1:m 19. DBAS旨的是_____ d____ 。

C程序设计题库

填空题 20*2 ■对于51系列单片机,现有4种语言支持程序设计,它们是(汇编语言)、PL/M、(C语言)、BASIC。 ■单片机程序设计时需要在主程序中设计死循环来防止程序跑飞。在C语言中采用(while(1))或for(;;)语句实现死循环。 ■单片机程序设计中经常用到中断,在C语言程序设计中外部中断1的中断入口序号(2),而汇编语言程序设计中外部中断1的入口地址是(0013H)。 ■编写串口中断程序时要在函数说明部分后写interrupt 4 。 ■编写定时器0中断程序时要在函数说明部分后写interrupt 1 。 ■C语言程序设计中有一个无符号形字符变量temp和一个位变量Flag,现在分别对它们取反。相应的语句为temp=__~___temp; Flag=_!___Flag;。 ■I2C总线在传送数据过程中共有三种类型控制信号,它们分别是:_(起始信号)____、应答信号、_(停止信号)_____。 ■I2C的地址由(协议规定)与(硬件设置)两部分组成。 ■I2C器件的两条信号线分别为串行时钟线SCL 与串行数据线 SDA 。 ■MCS-51单片机操作I2C器件时,单片机必须做为主机,I\O编程。 ■在Cx51所有的数据类型中,只有bit 与unsigned char 直接支持机器指令。 ■编译器性能比较有如下几个方面:算数支持、生产代码大小、开打速度、支持浮点和long 。 ■在KEIL开发套件中,BL51链接器/定位器用于创建一个绝对目标横快。 ■Cx51中函数分为两大类:标准库函数和用户自定义函数。 ■在函数名前如果不指定函数类型,则该函数的类型为整型。 ■具有一定格式的数字或数值叫做数据,数据的不同格式叫做数据类型, 数据按一定的数据类型进行的排列、组合及架构称为数据结构。 ■数据类型的转换有自动转换与强制转换两种。 ■直接出现在程序中的数值(如TMOD=0x21)称为常数。在程序运行的过程中,其值不能改变且被定义为符号的(如#define CONST 60)称为常量。 ■软件对常量与变量的命名规范是:常量名用大写字母,变量名用小写字母。 ■MCS-51单片机串口用于中断通讯时,在进行初始化时必须设置的特殊功能寄存器有:

最新C语言程序设计100个经典例子

C语言程序设计100个经典例子

经典C语言程序设计100例 1.数字排列 2.奖金分配问题 3.已知条件求解整数 4.输入日期判断第几天 5.输入整数进行排序 6.用*号显示字母C的图案 7.显示特殊图案 8.打印九九口诀 9.输出国际象棋棋盘 10.打印楼梯并按条件打印笑脸11.经典兔子问题12.判断素数 13.水仙花数问题14.正整数分解质因数15.学习成绩划分16.正整数求其最大公约数和最小公倍数 17.统计英文字母/空格/数字个数18.求s=a+aa+aaa+aa...a的值19.求解"完数" 20.球体自由落下物理问题 21.猴子吃桃问题22.乒乓球比赛抽签问题23.打印菱形图案24.分数数列求和 25.求1+2!+3!+...+20!的和26.利用递归方法求5! 27.将输入字符以相反顺序打印28.岁数问题 29.求解正整数位数30.判断回文数31.星期几猜测游戏32.改变文本颜色33.学习gotoxy()与clrscr()函数34.练习函数调用35.设置文本颜色36.求100之内的素数 37.对10个数进行排序38.求3*3矩阵对角线元素之和39.数字插入数组重新排序40.将一个数组逆序输出 41.static定义静态变量用法42.使用auto定义变量用法43.使用static的另一用法44.使用external的用法

45.使用register定义变量方法46.宏#define命令练习(1) 47.宏#define命令练习(2) 48.宏#define命令练习(3) 49.#if #ifdef和#ifndef的综合应用50.#include 的应用练习51.学习使用按位与 & 52.学习使用按位或 | 53.学习使用按位异或 ^ 54.取一个整数从右端开始的4~7位。55.学习使用按位取反~ 56.用circle画圆形 57.学用line画直线58.用rectangle画方形59.画图综合例子60.画图综合例子2 61.打印杨辉三角形62.学习putpixel画点63.画椭圆ellipse 64.利用ellipse and rectangle画图 65.画个最优美的图案66.输入3个数字按大小顺序输出67.输入数组交换元素重新输出68.多个整数后移位置问题 69.圆圈报数问题70.计算一个字符串长度71.编写输入/输出函数72.创建链表 73.反向输出链表74.连接两个链表75.算一道简单题目76.调用函数求 1/2+1/4+...+1/n 77.填空练习(指向指针的指针) 78.找到年龄最大的人79.字符串排序 80.海滩猴子分桃 81.已知公式条件求数字82.八进制转换为十进制83.求0-7所能组成的奇数个数84.由两个素数之和表示的偶数 85.判断一个素数能被几个9整除86.两个字符串连接程序87.结构体变量传递88.读取数字的整数值并打印出该值个数的* 89.数据加密90.专升本一题91.时间函数举例1 92.时间函数举例2

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

程序设计基础试题和答案解析二

《程序设计基础》考试试卷二 1.1966年,Bohra和Jacopini提出的三种基本程序设计结构是:________ A.if、while和for; B. switch、do-while和for; C.while、do-while和for; D.顺序结构、分支结构和循环结构。 2.算法的特征不包括:______。 A.有穷性 B.可行性 C.确定性 D.有1个或者多个输入。 3.C语言源程序的基本组成单位是______。 A.函数 B. 语句 C. 声明和语句 D. 文件 4.下列标识符中,只有______是合法的。 A.if B. 3ab C. Int D. A-4 5.下列常量中,只有______是合法的。 A.3e-0.3 B. ‘abc’ C. 02a1 D. ‘\377’ 6.下列说法中正确的是:______。 A.C语言中的for语句的三个表达式都可以省略,而且分号也可以省略。 B.宏替换比函数调用的执行速度慢。 C.实质上,C语言中的指针就是一个变量的地址。 D.C语言中的任何函数都可以由程序员命名。 7.C语言中,运算对象必须是整型的运算符是_______。 A./ B. % C. + D. - 8.以下叙述中错误的是_______。 A.C语句必须以分号结束 B.复合语句在语法上被看作一条语句 C.空语句出现在任何位置都不会影响程序运行 D.赋值表达式末尾加分号就构成赋值语句 9.以下叙述中正确的是_______。 A.调用printf函数时,必须要有输出项 B.使用putchar函数时,必须在之前包含头文件stdio.h C.在C语言中,整数可以以十二进制、八进制或十六进制的形式输出 D.调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码10.以下关于函数的叙述中正确的是_______。 A.每个函数都可以被其它函数调用(包括main函数) B.每个函数都可以被单独编译 C.每个函数都可以单独运行 D.在一个函数内部可以定义另一个函数 11.有以下程序段typedef struct NODE{ int num; struct NODE *next;

程序设计基础C-题库-1

程序设计基础C-题库 1、计算机语言按照高低级别可分为机器语言、 、 三大类。 答案: 汇编语言 ; 高级语言 ; 2、C语言中源文件的后缀名为 。 答案: *.c;.c ; 解析: 3、在程序中,如果使用printf()函数,应该包含 头文件。 答案: stdio.h ; 解析: 4、在main()函数中,用于返回函数执行结果的是 语句。 答案: return ; 5、C语言程序在Windows平台下经过编译、连接后生成的可执行文件后缀是 。答案: .exe ;

6、C语言并不属于高级语言。 答案:错误 7、计算机语言(Computer Language)是人与计算机之间通信的语言。 答案:正确 8、C语言并不能实现汇编语言的大部分功能。 答案:错误 9、Eclipse工具和Visual Studio工具都可以开发C语言。 答案:正确 10、C语言是UNIX和其衍生版本的主要开发语言。 答案:正确 11、请简述printf()函数的作用。 答案: printf()printf()“Hello, world\n”“\n” 12、请简述C语言中main()函数的作用。 答案: main函数是C程序的入口函数,即程序的执行是从main函数开始 解析: 13、使用DEV-C++开发工具编写一个控制台程序,要求在控制台上输出一句话:“我喜欢C语言”。 答案输入: #include int main() { printf("C");

return 0; } 答案输出: C 14、C语言属于下列哪类计算机语言? A、汇编语言 B、高级语言 C、机器语言 D、以上均不是 答案:B 15、下列关于主函数说法错误的是( ) A、一个C程序中只能包含一个主函数 B、主函数是C程序的入口 C、C程序中可以包含多个主函数 D、主函数只能包含输出语句 答案:CD 16、下列选项中,不属于C语言优点的是 A、不依赖计算机硬件 B、简洁、高效 C、可移植 D、面向对象 答案:D 17、下列选项中,哪一个是多行注释? A、// B、/**/ C、\\ D、以上均不属于 答案:B 18、C语言是一种()的编程语言 A、面向对象 B、面向过程 C、可视化 D、组件导向 答案:B

C语言程序设计程序填空题库及答案

程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); }

【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p

C语言程序设计 复习题库

一、填空 1. break 语句通常用于switch // 循环中。 2. C 语言对数组下标的引用一般从0 开始。 3. C 语言中,一个函数一般由两个部分组成,它们是函数首部和函数体。 4. C 标准库函数中,字符串的处理函数包含在string.h 头文件中,数学函数包含在 math.h 头文件中。 5. C 程序的运行需要经过编译和链接两步进行。 6. C 程序中用/**/ 括起来的内容是程序的注释语句。 7. C 语言函数是由函数首部和函数体两部分组成。其中,函数首部包括函数类型、函数 名和函数参数。 8. C 语言提供的三种逻辑运算符是& ,// ,!。 9. C 语言源程序经过编译后,生成文件的后缀名是.c 。 10. C 语言源程序经过连接后,生成文件的后缀名是.exe 。 11. C 语言中,关系表达式和逻辑表达式的值是1//0 。 12. C 语言中的标识符只能由三种字符组成,他们是字母,数字,下划线。 13. C 语言中的每条基本语句以;作为结束符,每条复合语句以} 作为结束符。 14. C 语言中函数返回值的类型是由函数类型决定的。 15. C 源程序的基本单位是函数。 16. int a = 2, b = 3; 表达式 a > b ? a ++ : ++ b 的值为 4 。 17. int x=1,y=1,z=1; x+=y+=z; 则表达式xb>c 的值是0 。 19. 定义一个指针p,它指向一个有 6 个整型元素的一维数组,定义语句为int *p=a[6] ; 。 20. 定义一个指针数组p ,它有 4 个元素,每个指针指向一个整型数据,定义语句为int *p[4]; 。 21. 赋值语句是由= 加上一个分号构成。 22. 构成数组的各个元素必须具有相同的类型。 23. 关系表达式x+y>5 的相反表达式为x+y !>5 。 24. 函数strlen("1234\0xy") 的值为:9 。 25. 函数的形参在未被调用前不分配空间,函数形参的数据类型要和实参相同。 26. 函数体用{ 开始,用} 结束。 27. 结构化设计中的三种基本结构是顺序,选择,循环。

程序设计基础练习题(全答案版)

《程序设计基础——C#.NET》练习 参考答案: 一、选择题 https://www.docsj.com/doc/3f17499520.html,的目的就是将____A____作为新一代操作系统的基础,对互联网的设计思想进行扩展。A.互联网 B. Windows C. C# D. 网络操作系统 2.假设变量x的值为10,要输出x值,下列正确的语句是__C__。 A.System.Console.writeline(“x”) B. System.Cosole.WriteLine(“x”) C. System.Console.WriteLine(“x={0}”,x) D. System.Console.WriteLine(“x={x}”) 3.要退出应用程序的执行,应执行下列的_A___语句。 A. Application.Exit(); B. Application.Exit; C. Application.Close(); D. Application.Close; 4.关于C#程序的书写,下列不正确的说法是__D________。 A.区分大小写 B.一行可以写多条语句 C.一条语句可以写成多行 D.一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法 5. 在C#语言中,下列能够作为变量名的是__C__。 A.if B. 3ab C. b_3a D. a-bc 7. 能正确表示逻辑关系“a≥5或a≤0”的C#语言表达方式是__D__。 A.a>=5 or a<=0 B. a>=5|a<=0 C. a>=5&&a<=0 D. a>=5||a<=0 8. 以下程序的输出结果是___C_____。 A. 5 B. 4 C. 6 D. 不确定 9. If语句后面的表达式应该是__A___。 A.逻辑表达式 B. 条件表达式 C. 算术表达式 D. 任意表达式10.有如下程序:

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

C语言编程实例100题

C语言程序实例100个(一) 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。 2.程序源代码: main() { int i,j,k; printf("\n"); for(i=1;i<5;i++) /*以下为三重循环*/for(j=1;j<5;j++) for(k=1;k<5;k++) { if(i!=k&&i!=j&&j!=k)/*确保i、j、k三位互不相同*/printf("%d,%d,%d\n",i,j,k); } } ==================================================== ========== 【程序2】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源代码: main() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i<=100000) bonus=i*0.1; else if(i<=200000) bonus=bonus1+(i-100000)*0.075; else if(i<=400000) bonus=bonus2+(i-200000)*0.05; else if(i<=600000)

程序设计基础试题(附答案)

程序设计基础复习题 一、单选 1、一个完整的计算机系统应该包括() A、系统软件和应用软件 B、计算机及其外部设备 C、硬件系统和软件系统 D、系统硬件和系统软件 2、“裸机”的概念是指() A、正在进行设计还没有组装好的计算机 B、已经组装好但还没有安装任何软件的计算机 C、仅安装了操作系统的计算机系统 D、安装了文字处理软件但没有安装专用数据处理系统的计算机 3、世界上第一台电子数字计算机研制成功的时间是() A、1936年 B、1946年 C、1956年 D、1970年 4、CASE的含义是() A、计算机辅助设计 B、计算机辅助制造 C、计算机辅助教学 D、计算机辅助软件工程5、当前广泛使用的微型计算机是() A、第一代 B、第二代 C、第三代 D、第四代 6、当代计算机的体系结构称为是() A、冯·诺依曼机 B、非冯·诺依曼机 C、图灵机 D、比尔盖茨机 7、硬盘是() A、输入设备 B、输出设备 C、存储设备 D、计算设备 8、下面4句话中,最准确的表述是() A、程序=算法+数据结构 B、程序是使用编程语言实现算法 C、程序的开发方法决定算法设计 D、算法是程序设计中最关键的因素

9、计算机能直接执行的语言是() A、机器语言 B、汇编语言 C、高级语言 D、目标语言 10、解释程序的功能是() A、将高级语言程序转换为目标程序 B、将汇编语言程序转换为目标程序 C、解释执行高级语言程序 D、解释执行汇编语言程序 11、下面4种程序设计语言中,不是面向对象式语言的是() A、JAVA B、Object Pascal C、Delphi D、C 12、不是C语言的基本数据类型是() A、int B、double C、char D、bool 13、在C语言中,为了求两个整数相除之后得到的余数,可以使用运算符() A、/ B、% C、* D、++ 14、数据的逻辑结构分为() A、纯属结构和非线性结构 B、顺序结构和非顺序结构 C、树型结构和图型结构 D、链式结构和顺序结构 15、用链表表示纯属表的优点是() A、便于随机存取 B、便于插入和删除操作 C、花费的存储空间较顺序存储少 D、元素的物理顺序与逻辑顺序相同 16、栈的最主要特点是() A、先进先出 B、先进后出 C、两端进出 D、一端进一端出 17、下面4句结论只有一句是错误的,它是()

C语言程序设计-----阅读程序题库及答案

C语言程序设计-----阅读程序题库及答案 集团文件发布号:(9816-UATWW-MWUB-WUNN-INNUL-DQQTY-

阅读程序题 【】以下程序的输出结果是。 main(D ) { float a; printf("%g",a); } A) +00 B) C) D) 0 【】下面程序的输出结果是B____。 #include <> main( ) { int x=10; { int x=20; printf ("%d,", x);

} printf("%d\n", x); } A) 10,20 B) 20,10 C) 10,10 D) 20,20 【】以下程序的输出结果是___B_。 main() { unsigned int n; int i=-521; n=i; printf("n=%u\n",n); }s",s); } A) a book! B) a book!<四个空格》 C) a bo D) 格式描述错误,输出不确定

【】下面程序的输出结果是____。 main() { int a,b; scanf("%2d%3d",&a,&b); printf("a=%d b=%d\n",a,b); } A) a=12 b=34 B) a=123 b=45 C) a=12 b=345 D) 语句右错误 【】以下程序段的输出结果是。 int a=10,b=50,c=30; if(a>b) a=b; b=c; c=a; printf("a=%d b=%d c=%d\n",a,b,c);

A) a=10 b=50 c=10 B) a=10 b=30 c=10 C) a=50 b=30 c=10 D) a=50 b=30 c=50 【】以下程序的输出结果是。 main() { int a=0,b=1,c=0,d=20; if(a) d=d-10; else if(!b) if(!c) d=15; else d=25; printf("d=%d\n",d); } A) d=10 B) d=15 C) d=20 D) d=25 【】下面程序的输出结果为。 main()

(完整版)程序设计基础试题_10_答案

广州大学学年第学期考试卷 课程高级语言程序设计考试形式(开/闭卷,考试/查) 学院系专业班级学号姓名 一、填空题(每空1分,共10分) 1.C源程序的基本单位是(函数)。 2.一个C源程序中至少应包含一个(main()函数)。 3.若a和b均是int型变量,且a和b的初值均为5,则计算表达式a+=b++ 后,a的值为(10 ),b的值为( 6 )。 4.若a、b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,b值为( 4 ),c 值为( 2 )。 5.表达式8.2-2/3 的计算结果是(8 )。 6.在C语言中,整数可用三种数制表示,它们分别是(十进制)、(八进制)和(十六进制)。 二、程序计算题(每小题5分,共15分) 1. # define f(a) printf(“%d”,a) main() { int i,b[]={1,2,3,5,7,9,11,13,15},*p=5+b; for(i=3;i;i--) switch(i) { case 1: case 2: f(*p++); break;

case 3: f(*(--p)); } } 2. main() { int arr_sum(int arr[],int n); int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; int *p,total; int (*pt)( int arr[],int n); pt=arr_sum; p=a[0]; total=(*pt)(p,12); printf(“total=%d\n”,total); } arr_sum(int arr[],int n) { int i,sum=0; for(i=0;i

C语言程序设计个经典例子

C语言程序设计个经典 例子 公司内部编号:(GOOD-TMMT-MMUT-UUPTY-UUYY-DTTI-

经典C语言程序设计100例1.数字排列 2.奖金分配问题 3.已知条件求解整数 4.输入日期判断第几天 5.输入整数进行排序 6.用*号显示字母C的图案 7.显示特殊图案 8.打印九九口诀 9.输出国际象棋棋盘10.打印楼梯并按条件打印笑脸11.经典兔子问题12.判断素数 13.水仙花数问题14.正整数分解质因数15.学习成绩划分16.正整数求其最大公约数和最小公倍数 17.统计英文字母/空格/数字个数18.求s=a+aa+aaa+aa...a的值19.求解"完数" 20.球体自由落下物理问题 21.猴子吃桃问题22.乒乓球比赛抽签问题 23.打印菱形图案24.分数数列求和 25.求1+2!+3!+...+20!的和26.利用递归方法求5! 27.将输入字符以相反顺序打印28.岁数问题 29.求解正整数位数30.判断回文数31.星期几猜测游戏32.改变文本颜色 33.学习gotoxy()与clrscr()函数34.练习函数调用35.设置文本颜色36.求100之内的素数 37.对10个数进行排序38.求3*3矩阵对角线元素之和39.数字插入数组重新排序 40.将一个数组逆序输出

41.static定义静态变量用法42.使用auto定义变量用法43.使用static的另一用法44.使用external的用法 45.使用register定义变量方法46.宏#define命令练习(1) 47.宏#define命令练习(2) 48.宏#define命令练习(3) 49.#if #ifdef和#ifndef的综合应用50.#include 的应用练习51.学习使用按位与 & 52.学习使用按位或 | 53.学习使用按位异或 ^ 54.取一个整数从右端开始的4~7位。55.学习使用按位取反~ 56.用circle画圆形 57.学用line画直线58.用rectangle画方形 59.画图综合例子60.画图综合例子2 61.打印杨辉三角形62.学习putpixel画点63.画椭圆ellipse 64.利用ellipse and rectangle画图 65.画个最优美的图案66.输入3个数字按大小顺序输出67.输入数组交换元素重新输出68.多个整数后移位置问题 69.圆圈报数问题70.计算一个字符串长度 71.编写输入/输出函数72.创建链表 73.反向输出链表74.连接两个链表75.算一道简单题目76.调用函数求1/2+1/4+...+1/n 77.填空练习(指向指针的指针) 78.找到年龄最大的人79.字符串排序 80.海滩猴子分桃 81.已知公式条件求数字 82.八进制转换为十进制 83.求0-7所能组成的奇数个数84.由两个素数之和表示的偶数

C语言程序设计考试题库

一、判断题 1、所谓常量,就是在程序运行过程中其值可以改变的量。() 2、一个C程序可以由多个源程序文件构成,但其中只能有一个main()函数。() 3、在C语言中do-while 语句和for循环均是先执行循环体语句,再判断表达式。() 4、在函数调用中将变量的地址作为实参传递给对应形参时,实现的是单向的值传递。() 5、C语言中所有字符串都是以‘\0’结束的。() 6、do-while构成的循环语句中的循环体最少执行1次。() 7、数组名在C语言中表示的是数组的首地址。() 8、使用gets()函数输入字符串时可以在字符串中输入空格。() 9、算术运算符中‘/’的优先级高于‘%’。() 10、char a[5];该语句表明数组a中的第五个元素为a[5]。() 11、C语言源程序文件的扩展名均为.c。() 12、char a[5];数组a中有a[1]、a[2]、a[3]、a[4]、a[5]共5个元素。() 13、C语言程序区分大小写,字符常量必须定义为大写。() 14、若int i=10,j=2;则执行i*=j+8;后i的值为28。() 15、若int x=100,y=200;则语句printf("%d",(x,y));输出结果为100。() 16、c语言中的标识符只能由字母,数字和下划线三种字符组成。() 17、函数getchar()的作用是:输出一个字符。() 18、一个C语言程序总是从第一个函数开始执行。() 19、在c语言中,char型数据在内存中是以ASCII码形式存储的。() 20、在C语言中switch语句必须使用break语句。() 二、选择题 1、以下说法正确的是()。 A、C语言程序总是从第一个函数开始执行。 B、C语言程序中要调用的函数必须在main()函数中定义。 C、C语言程序总是从main()函数开始执行。

《程序设计基础》题库(50道)

《程序设计基础》题库(50道) <说明> 1、难易程度依次为:易(16道)、较易(38道)、较难(31道)、难(15道)。 2、总共抽8道题,按难易程度:易(1道)、较易(4道)、较难(2道)、难(1道); 按题型:顺序(1道)、分支(2道)、单循环(2道)、多循环(1道)、数组(1道)、字符串(1道) 3、考试要求:先画流程图再写程序,理论考试,2个半小时 一、顺序结构 1、 请定义4个整型变量,并打印输出这4个变量的加、减、乘、除后的结果。(易) 2、 将华氏温度转化成摄氏温度。公式为:C=(5/9)*(F-32),其中F 为华氏温度,C 为 摄氏温度。请根据给定的华氏温度输出对应的摄氏温度。(易) 3、 根据观察,蟋蟀的名叫频率与温度有关,具体的公式为T=(c+40)/10.其中,c 代表 蟋蟀每分钟鸣叫数,T 代表华氏温度。请根据蟋蟀每分钟的鸣叫数输出相应的华氏温度。(易) 4、 编写程序,读入0~1000的一个整数并将其各位数字之和赋给一个整数,如整数932, 各位数字之和为14. (较易) 5、 编程实现两个整数交换位置,例如:int x = 6,y = 9,交换后 x = 9,y = 6。(较易) 6、 求空间两点之间的距离。(提示:空间一点(x,y,z ),可由三个实数来描述)(较易) 7、 已知圆的半径,求圆的面积。(易) 8、 已知一个三角形的三边边长分别为a,b,c ,利用海伦公式求三角形的面积。(较难) 海伦公式: 9、 求两数平方和的算术根。(易) 10、 给定一段时间求出它的秒数。(如计算2小时 17分30秒等于多少秒)(易) 11、 某印刷厂3月1日有A4纸500盒,3月2日又买进进100盒,3月3日用掉A4 纸存量的三分之二,3月4日又买进A4纸存量的2倍,问该印刷厂3月1日到3月4日期间每天的A4纸存量分别是多少盒?(易) 12、 三个小朋友,大毛有糖果50粒,二毛有糖果43粒,三毛有糖果13粒。现在他们 三兄弟做游戏,从大毛开始,将自己的糖果三等分,三兄弟每人一份,多余的自己吃掉;然后二毛和三毛也依次这样做,问最后三兄弟各有多少糖果?(较易) 二、分支结构 13、 两个整数比较大小,输出较大值。(易) 14、 三个整数比较大小,输出最大值。(较易) 15、 求下列函数中y 的值。(较易) y=10 (x=0) y=3x+5 (x>0) y=x-2 (x<0) 16、 判断某年是否为闰年。(闰年的条件是:该年的年号能被4整除且不能被100整除, 或该年的年号能被400整除,则该年是闰年,否则不是闰年。)(较易) 17、 根据某同学的成绩,判定其成绩的等级。(90~100分为“优秀”,80~89为“良好”, 70~79为“中等”,60~69为“及格”,60分以下为“不及格”。)(较易) ))()((c p b p a p p S ---=2 c b a p ++=

C多线程编程实例实战

C多线程编程实例实战Prepared on 21 November 2021

C#多线程编程实例实战 问题的提出 所谓单个写入程序/多个阅读程序的线程同步问题,是指任意数量的线程访问共享资源时,写入程序(线程)需要修改共享资源,而阅读程序(线程)需要读取数据。在这个同步问题中,很容易得到下面二个要求: 1)当一个线程正在写入数据时,其他线程不能写,也不能读。 2)当一个线程正在读入数据时,其他线程不能写,但能够读。 在数据库应用程序环境中经常遇到这样的问题。比如说,有n个最终用户,他们都要同时访问同一个数据库。其中有m个用户要将数据存入数据库,n-m个用户要读取数据库中的记录。 很显然,在这个环境中,我们不能让两个或两个以上的用户同时更新同一条记录,如果两个或两个以上的用户都试图同时修改同一记录,那么该记录中的信息就会被破坏。 我们也不让一个用户更新数据库记录的同时,让另一用户读取记录的内容。因为读取的记录很有可能同时包含了更新和没有更新的信息,也就是说这条记录是无效的记录。 实现分析 规定任一线程要对资源进行写或读操作前必须申请锁。根据操作的不同,分为阅读锁和写入锁,操作完成之后应释放相应的锁。将单个写入程序/多个阅读程序的要求改变一下,可以得到如下的形式: 一个线程申请阅读锁的成功条件是:当前没有活动的写入线程。 一个线程申请写入锁的成功条件是:当前没有任何活动(对锁而言)的线程。 因此,为了标志是否有活动的线程,以及是写入还是阅读线程,引入一个变量m_nActive,如果m_nActive > 0,则表示当前活动阅读线程的数目,如果m_nActive=0,则表示没有任何活动线程,m_nActive <0,表示当前有写入线程在活动,注意m_nActive<0,时只能取-1的值,因为只允许有一个写入线程活动。 为了判断当前活动线程拥有的锁的类型,我们采用了线程局部存储技术(请参阅其它参考书籍),将线程与特殊标志位关联起来。 申请阅读锁的函数原型为:public void AcquireReaderLock( int millisecondsTimeout ),其中的参数为线程等待调度的时间。函数定义如下:public void AcquireReaderLock( int millisecondsTimeout ) { et FrameSDK中的一个例子,只是稍做修改。测试程序如下, using System; using ; using MyThreading; class Resource { myReaderWriterLock rwl = new myReaderWriterLock(); public void Read(Int32 threadNum) { ; try {

相关文档