有以下程序段:char ch;int k;ch='a';k =12;printf(%c,%d,,ch,ch,k);pri

题目
单选题
有以下程序段:char ch;int k;ch='a';k =12;printf(%c,%d,,ch,ch,k);printf(k=%d,k);已知字符a的ASCII码十进制值为97,则执行上述程序段后输出的结果是(  )。
A

因变量类型与格式描述符的类型不匹配输出无定值

B

输出项与格式描述符个数不符,输出为零值或不定值

C

a,97,12k=12

D

a,97,k=12

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有下列程序段:

charch:intk:

ch=a;k=12;

printf("%c,%d,",ch,ch,k);

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

已知字符a的ASCIl十进制代码为97,则执行上述程序段后输出结果是( )。

A.因变量类型与格式描述符的类型不匹配输出无定值

B.输出项与格式描述符个数不符,输出为零值或不定值

C.a,97,12k=12

D.a,97,k=12


正确答案:D

D。【解析】printf语句在输出时,格式说明与输出项的个数应该相同。如果格式说明的个数少于输出项的个数(正如本题的情况),则多余的输出项不予输出,如果格式说明个数多于输出项个数,则对于多余的格式项输出不定值或0。故本题选项为D。

第2题:

杭电2000 ASCII码排序

#include<stdio.h>#include<string.h>int main(){ int n,ch[3],i,t,k,j; while(scanf("%d",&n)!=EOF) { scanf("%s",ch); for(i=0;i<3;i++) { if(ch[i]<ch[0]) { t=ch[0]; ch[0]=ch[i]; ch[i]=t; } } if(ch[2]<ch[1]) { k=ch[2]; ch[2]=ch[1]; ch[1]=k; } for(j=0;j<3;j++) { if(j==0) printf("%c",ch[0]); else printf(" %c",ch[j]); } printf("\n"); } return 0;}Problem Description输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。 Input输入数据有多组,每组占一行,有三个字符组成,之间无空格。 Output对于每组输入数据,输出一行,字符中间用一个空格分开。 Sample Inputqweasdzxc Sample Outpute q wa d sc x z


#include<stdio.h> #include<string.h> #include<stdlib.h>//qsort的头文件 int cmp( const void *a , const void *b ) //告诉它你要以升序还是降序来排 { return *(char *)b - *(char * )a; } int main() { int /*,i,t,k*/j;//老兄是字符排序勒! char ch[3]; //while(scanf("%d",&n)!=EOF)//这条语句你是用来干吗的呢?我不太理解 while( scanf( "%s", ch ) != EOF ) { //scanf("%s",ch); /*for(i=0;i<3;i++) { if(ch[i]<ch[0]) { t=ch[0]; ch[0]=ch[i]; ch[i]=t; } } if(ch[2]<ch[1]) { k=ch[2]; ch[2]=ch[1]; ch[1]=k; }*/ //这就是你的排序吗? //我建议你可以去网上搜搜那个起泡,冒泡,选择排序之类的看看! qsort( ch, sizeof(ch), sizeof(char), cmp);//给你介绍库函数的排序,很 好理解的 for(j=0;j<3;j++) { if(j==0) printf("%c",ch[0]); else printf(" %c",ch[j]); } printf("\n"); } return 0; }

第3题:

有以下程序段

char ch; int k;

ch='a'; k=12;

printf("%c,%d,",ch,ch,k); printf("k=%d\n",k);

已知字符 a 的 ASCll 十进制代码为 97 ,则执行上述程序段后输出结果是 ( )

A) 因变量类型与格式描述符的类型不匹配输出无定值

B) 输出项与格式描述符个数不符,输出为零值或不定值

C)a,97,12k=12

D)a,97,k=12


正确答案:D

第4题:

有以下程序段 char eh; int k; ch='a'; k=12; printf("%c,%d,",ch,ch,k); printf("k=%d\n",k); 已知字符a的ASCII码值为97,则执行上述程序段后输出结果是

A.因变量类型与格式描述符的类型不匹配输出无定值

B.输出项与格式描述符个数不符,输出为零值或不定值

C.a,97,12k=12

D.a,97,k=12


正确答案:D
解析:输出格式控制符%c表示将变量以字符的形式输出;输出格式控制符%d表示将变量以带符号的十进制整型数输出,所以第一个输出语句输出的结果为a,97;第二个输出语句输出的结果为k=12。

第5题:

在执行以下程序时,如果从键盘上输入ABCdef<回车>,则输出为______。include main(){char

在执行以下程序时,如果从键盘上输入ABCdef<回车>,则输出为______。#include <stdio.h>main (){ char ch; while ((ch=getchar())!="\n") { if (ch>='A'&& ch<='B')ch=ch+32; else if (ch>='a'&& ch<='z')ch=ch-32; printf("%c",ch); } printf("\n");}

A.ABCdef

B.abcDEF

C.abc

D.DEF


正确答案:B

第6题:

浙大OJ 2987Misspelling WA 坐等专家指教

Misspelling is an art form that students seem to excel at. Write a program that removes the nth character from an input string. InputThe first line of input contains a single integer N, (1 <= N <= 1000) which is the number of datasets that follow. Each dataset consists of a single line of input containing M, a space, and a single word made up of uppercase letters only. M will be less than or equal to the length of the word. The length of the word is guaranteed to be less than or equal to 80. OutputFor each dataset, you should generate one line of output with the following values: The dataset number as a decimal integer (start counting at one), a space, and the misspelled word. The misspelled word is the input word with the indicated character deleted. Sample Input44 MISSPELL1 PROGRAMMING7 CONTEST3 BALLOONSample Output1 MISPELL2 ROGRAMMING3 CONTES4 BALOON我的代码#include<stdio.h>#include<string.h>int main(){ int n,i,m,k,j,char[90]; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&m); getchar(); scanf("%s",&ch); j=0; for(k=0;ch[k]!='\0';k++) { if(k!=(m-1)) { j=j+1; ch[j]=ch[k]; // 这个地方 我有点小疑问 如果m=4 那么 ch[1]=ch[0],ch[2] } ]=ch[1] ch[3]=ch[2] ch[4]=ch[4];ch[5]=ch[5]....... 最后 在 } 输出ch的时候 ch[0] =ch[1],这个地方不是会有重复吗? (新手问的问题可能有点白痴 呵呵) printf("%d\n",k+1); printf("%s\n",ch); } return 0;}


我觉得你思路有点错误,程序也写的不对,最主要的,是给定了一个字符串,然后去掉指定位置的一个字符,用一个循环,将a[m-1],a[m],a[m+1].....到字符串结束用后面的字符覆盖前面的字符,就相当于去掉了制定位置的字符,用一重循环就可以实现,另外你输出的序号有问题,而且你的字符串读入貌似也不对。我改了你的程序,并且AC了的代码如下: #include<stdio.h> int main() { int n,i,m,k,j; char ch[90]; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&m); scanf("%s",ch); //字符串要这样读 for(j=m-1;ch[j]!='\0';j++)//只要从m-1处,到字符串结束,进行覆盖就行了 { ch[j] = ch[j+1]; } printf("%d ",i+1); //序号是i,两个printf能何必并成 printf("%d %s\n",i+1,ch); printf("%s\n",ch); } return 0; }

第7题:

若ch为char型变量,k为int型变量(已知字符a的ASCIl码是97),则执行下列语句后输出的结果为( )。 ch=b; k=10: printf("%X,%o,",ch,ch,k); printf("k=%%d\n",k);

A.因变量类型与格式描述符的类型不匹配,输出无定值

B.输出项与格式描述符个数不符,输出为0值或不定值

C.62,142,k=%d

D.62,142,k=%l0


正确答案:C
第1个printf函数,格式说明的个数是2,而输出项的个数是3,所以对于多余的输出项k不予输出;第2个printf函数,有两个%说明,第1个%后面的字符要原样输出。本题考查printf函数的格式。①“%x”和“%o”分别表示以十六进制和八进制无符合型输出整型数据(不带前导ox或o);②printf函数中格式说明符之前插入的任何字符都原样输出;③格式说明与输出项的个数也要相等,如果格式说明的个数少于输出项的个数,则对于多余的输出项不予输出。

第8题:

有以下程序段 char ch; int k; ch='a'; k=12; pnntf("%c,%d,",ch,ch,k); printf("k二%d\n",k); 已知字符a的ASCII码值为97,则执行上述程序段后输出结果是

A.因变量类型与格式描述符的类型不匹配输出无定值

B.输出项与格式描述符个数不符,输出为零值或不定值

C.a,97,12k=12

D.a,97,k=12


正确答案:D
解析: 输出格式控制符%c表示将变量以字符的形式输出;输出格式控制符%d表示将变量以带符号的十进制整型数输出,所以第一个输出语句输出的结果为a,97;第二个输出语句输出的结果为k=12。

第9题:

有以下程序:includeunion pw{int i; char ch[2];}a;main(){a.ch[0]=13;a.ch[1]=0;prin

有以下程序: #include<stdio.h> union pw { int i; char ch[2]; }a; main() { a.ch[0]=13;a.ch[1]=0;printf("%d\n",a.i);} 程序的输出结果是( )。

A.13

B.14

C.208

D.209


正确答案:A
解析:在本题中,首先定义了一个共用体pw,其中有两个域:整型变量i和字符数组ch。因为共用体中的域是共享内存空间的,数组元素由低到高存储:ch[0]在低字节;ch[1]在高字节;整型变量i占两个字节,高位与ch[1]共用存储空间,低位与ch[0]共用存储空间,而高位ch[1]的值为0,所以输出的成员变量i的值就是ch[0]的值13。

第10题:

有以下程序:includeunion pw{ int i;char ch[2];}a;main(){ a.ch[0]=13;a.ch[1]=0;pri

有以下程序: #include<stdio.h> union pw { int i; char ch[2];}a; main() { a.ch[0]=13;a.ch[1]=0;printf("%d\n",a.i);} 程序的输出结果是

A.13

B.14

C.208

D.209


正确答案:A
解析:本题中,首先定义了一个共用体pw,其中有两个域:整型变量i和字符数组ch,因为共用体中的域是共享内存空间的,又数组的元素有低到高存储:ch[0]在低字节,ch[1]在高字节。整型变量i占两个字节,高位与ch[1]共用存储空间,低位与ch[0]共用存储空间,而高位ch[1]的值为0,所以输出的成员变量i的值就是ch[0]的值13。

更多相关问题